כתיבה שרה פולק ייעוץ אקדמי ד"ר דן אהרוני ייעוץ דידקטי ד"ר צבי פירסט קריאה והערות ד"ר ראובן חוטובלי דינה קראוס סופי גילליס ישראל זילברשטיין עריכה לשונית אילנה גולן ד"ר דן אהרוני (פרקים -5) איורים רונית בורלא הפקה אביבה אבידן עיצוב עטיפה אבי חתם משרד החינוך האגף לתכנון ולפיתוח תכניות לימודים המרכז לטכנולוגיה חינוכית (מטח) המרכז הישראלי לחינוך מדעי-טכנולוגי ע"ש עמוס דה-שליט האוניברסיטה הפתוחה בית-הספר לטכנולוגיה מקט 433 מהדורת ניסוי מהדורת תשס"ז 26. כל הזכויות שמורות למשרד החינוך. בית ההוצאה לאור של המרכז לטכנולוגיה חינוכית, קרית משה רואו, רח' קלאוזנר 6, רמת-אביב, ת"ד 3953, תל-אביב 6394. The Centre For Educational Technology, 6 Klausner St., Ramat-Aviv, P.O.Box 3953, Tel-Aviv, 6394. Printed in Israel. זכויות הקניין הרוחני, לרבות זכויות היוצרים והזכות המוסרית של היוצר/ים בספר זה מוגנות. אין לשכפל, להעתיק, לסכם, לצלם, להקליט, לתרגם, לאחסן במאגר מידע, לשדר או לקלוט בכל דרך או בכל אמצעי אלקטרוני, אופטי, מכני או אחר, כל חלק שהוא מספר זה. כמו כן, אין לעשות שימוש מסחרי כלשהו בספר זה, בכולו או בחלקים ממנו, אלא אך ורק לאחר קבלת רשות מפורשת בכתב ממטח (המרכז לטכנולוגיה חינוכית).
תוכן העניינים 7 7 4 42 47 47 48 64 63 74 77 84 85 85 97 3 7 9 9 5 23 3 38 39 פרק המחשב הדיגיטלי מבוא מודל מופשט של מחשב מבנה מחשב פשוט ואופן ביצוע ההוראות בשפת מכונה הקשר בין יחידות המחשב..2.3.4 פרק 2 ייצוג מידע במחשב מבוא ייצוג מספרים שלמים ייצוג מספרים ממשיים ייצוג טקסט ייצוג תמונה יחידות זיכרון לאחסון מידע במחשב ייצוג כללי של מספרים בשיטה מקומית 2. 2.2 2.3 2.4 2.5 2.6 נספח פרק 3 פעולות אריתמטיות על ייצוג בינארי במחשב חיבור וחיסור מספרים בינאריים בלתי מכוונים שיטות לייצוג מספרים בינאריים מכוונים חיבור וחיסור מספרים בינאריים שלמים מכוונים תחום הייצוג של מספרים בינאריים שלמים מכוונים ובלתי מכוונים 3. 3.2 3.3 3.4 פרק 4 שפת אסמבלי והמודל התכנותי של מעבד 886 מבוא המודל התכנותי של ה- 886 ארגון הזיכרון במעבד 886 כתיבת תכנית בשפת אסמבלי הגדרת משתנים בשפת אסמבלי הצהרה על קבועים הנחיית אסמבלר EQU תיאור תהליך הרצת התכנית 4. 4.2 4.3 4.4 4.5 4.6 נספח
4 4 4 44 63 82 88 22 25 25 22 224 225 226 229 235 24 243 249 249 25 253 264 27 277 28 284 32 תכנות בסיסי בשפת אסמבלי מבוא הוראות להעברת נתונים הוראות אריתמטיות הוראות בקרה הוראות כפל וחילוק הוראות לוגיות הוראות הזזה וסיבוב חיבור וחיסור פרק 5 5. 5.2 5.3 5.4 5.5 5.6 5.7 פרק 6 שיטות מיעון, מערכים ורשומות הצהרה על מערכים ורשומות (Immediate addressing) (Register addressing) (Direct addressing mode) (Indirect Addressing Register) (Direct Indexed Mode) (Base Relative Addressing) (Based Indexed Addressing Modes) שיטות מיעון מיעון מיידי מיעון אוגר מיעון ישיר מיעון עקיף בעזרת אוגר מיעון אינדקס מיעון בסיס מיעון אינדקס-בסיס 6. 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 פרק 7 מחסנית, שגרות ומקרו מבוא כתיבת פרוצדורה וזימונה המחסנית ומצביע המחסנית העברת פרמטרים מימוש משתנים מקומיים העברת מערך כפרמטר לפרוצדורה מימוש פונקציות פונקציה רקורסיבית מקרו 7. 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9
3 3 33 33 36 38 39 32 325 327 329 329 329 338 346 35 353 353 356 358 375 עיבוד מחרוזות ובלוקים של נתונים הגדרת מחרוזות בשפת אסמבלי מבנה של הוראות מחרוזת העתקת מחרוזות חזרה על פעולת ההעתקה ההוראה MOVS כתיבת תווים במחרוזת ההוראה קריאת תו ממחרוזת ההוראה השוואת מחרוזות ההוראה חיפוש תו במחרוזת הוראה (Store a String) STOS (Load a String) LODS (CoMPare String) (SCAn String) CMPS SCAS טבלאות תרגום וההוראה XLAT פרק 8 8. 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 פרק 9 פסיקות וקלט-פלט מבוא שימוש בשגרת השירות של DOS מנגנון ביצוע פסיקות במעבד 886 קריאה ושינוי של פסיקה הוראות IN ו- OUT 9. 9.2 9.3 9.4 9.5 פרק ארכיטקטורה של מעבדים מתקדמים ההשפעה של ההתפתחות הטכנולוגית על מבנה מעבדים מתקדמים מבנה האוגרים במעבדים מתקדמים ארכיטקטורת "צינור הוראות" ארגון זיכרון (pipelining)..2.3.4
המחשב הדיגיטלי 7 המחשב הדיגיטלי. מבוא..2 מחשב דיגיטלי הוא מכונה שבאמצעותה ניתן לפתור בעיות שונות. התוכנה,(Software) היא אוסף של הוראות ונתונים, אשר מגדירים את אופן הפעולה של המחשב. אוסף זה יכול להופיע כתכנית מחשב אחת, או כמספר תוכניות. ניתן לסווג את התכניות לשני סוגים: תכניות, הנקראות "יישומים", שנועדו לפתור בעיות או לבצע משימות ספציפיות עבור משתמש, כגון: מעבד תמלילים, תוכנה לניהול ספריית וידאו, משחק מחשב וכדומה. אוסף תכניות שמספקות פונקציות שירות כלליות למשתמש במחשב, הפעלה,Linux,Windows) שפות תכנות וכדומה; וכדומה) כגון: הכוללת פונקציות להפעלת המחשב, מערכת תקשורת, המחשב מורכב מרכיבים רבים, החל מההתקנים שהמחשב חייב להכיל המעבד הראשי, שהוא "לב" המחשב, הזיכרון איתו הוא עובד, ועוד, וכלה בהתקנים המכונים "היקפיים" (חיצוניים) כמו: מקלדת, עכבר, דיסק קשיח, צורב דיסקים, ועוד. הרכיבים הללו מורכבים חומרת ולכל המכלול הפיזי קוראים מאלפי מעגלים אלקטרוניים ורכיבים מכאניים, המחשב.(hardware) בין החומרה לתוכנה קיימת תלות הדדית: מחד, התוכנה מגדירה מה המחשב צריך לבצע, וכך היא מפעילה את החומרה. מאידך, החומרה מגדירה את סוג ההוראות שהמחשב יכול לבצע ואת אופן הפעולה שלו. ניתן לדמות זאת לשימוש במכונית: באמצעות ההגה, מוט ההילוכים הידני (או האוטומטי) והדוושות אנו קובעים את התנהגות המכונית, כלומר את המהירות, כיוון הנסיעה וכדומה. מצד שני, מבנה המכונית, סוג המנוע ושאר החלקים מגדירים את הפעולות שהנהג יוכל לבצע, כמו: המהירות המרבית שהמכונית תיסע בה, או התאוצה שתפתח.
8 מבוא למערכות מחשב ואסמבלי התכניות מורצות במחשב בשפת מכונה language) ;(machine בשפה זו ההוראות מיוצגות בקודים מספריים המורכבים מהספרות בלבד. ו- שפת מכונה (לעיתים מכנים את המחשב בשם "מכונה") היא השפה שבה קל להפעיל את חומרת המחשב. החומרה מורכבת מאוסף של מעגלים אלקטרוניים. מעגלים אלה פועלים על-פי אותות חשמליים, המוגדרים על-ידי הסימנים ו-. אולם השימוש בשפת המכונה לכתיבת תכניות אינו נוח למתכנתים, והתכניות קשות להבנה. לכן פותחה שפת אסמבלי language),(assembly הנקראת בעברית "שפת-סף". בשפת אסמבלי הוחלפו הקודים המספריים בקודים הנקראים "קודים מנמוניים" *.(Mnemonic codes) כל קוד מנמוני נכתב באותיות לטיניות, והוא מורכב ממילה או מקיצור של מילה, המייצגים פעולה שיש לבצע. לדוגמה: קוד הפעולה של הוראת חיבור הוא ADD (קיצור של המילה (ADDition וקוד הפעולה של הוראת השוואה הוא CMP (קיצור של המילה.(CoMPare כדי להריץ תכנית בשפת אסמבלי, יש לתרגם אותה תחילה לשפת מכונה. "אסמבלר".(Assembler) התרגום לשפת מכונה מתבצע באמצעות תכנית מחשב הנקראת האסמבלר מתרגם כל הוראה בשפת אסמבלי להוראה בשפת מכונה. ההוראות בשפת מכונה ובשפת אסמבלי מתייחסות במישרין לחומרת המחשב, לכן נהוג לקרוא להן "שפות תכנות נמוכות".(Low level languages) כיוון שתכניות בשפה נמוכה תלויות בחומרה, לא ניתן להריץ תכנית שנכתבה במחשב מסוים על מחשב אחר, אם החומרה שלו שונה. לדוגמה: תכניות שפותחו עבור מחשבים שיצרה חברת IBM לא יוכלו לרוץ על מחשבים שיצרה חברת אינטל. בעיה זו הייתה אחד הגורמים העיקריים להתפתחות נוספת בשפות התכנות, ולהמצאת השפות העיליות Languages) (High Level כמו פסקל, Visual Basic,C++,JAVA,C ועוד. שפות עיליות הן שפות מופשטות, והן כוללות הוראות המתארות את הפעולות שרוצים לבצע, בלי להתייחס לאופן המימוש שלהן בחומרת המחשב. לדוגמה: בהוראת ההשמה 9=A, אין אנו רושמים את המיקום הפיזי של המשתנה A בזיכרון המחשב, מפני שקיים מנגנון שידאג לאחסן את המספר 9 בזיכרון, בּ מקום שיוקדש באופן אוטומטי למשתנה אותו אנו מכנים "A". המילה "מנמוני" או "מנמוטכני" היא מילה לטינית, שפירושה: "מסייע לזכירה". *
המחשב הדיגיטלי 9 כדי שהמחשב יוכל להבין תכנית שנכתבה בשפה עילית, יש לתרגם אותה לתכנית הכתובה בשפת מכונה. תהליך זה נקרא "הידור".(Compilation) ההידור מתבצע על-ידי תכנית הנקראת "מהדר".(Compiler) המהדר מתרגם תכנית משפה עילית, ויוצר קובץ המכיל תכנית בשפת מכונה בהתאם לסוג המחשב עליו מריצים את התכנית. קיימות שפות עיליות שבהן התרגום לשפת מכונה מתבצע על-ידי תהליך שנקרא "פירוש".(Interpretation) בתהליך זה מפוענחת ומבוצעת כל הוראה בנפרד ובמקרה כזה לא נוצר "מפרש" לביצוע הפירוש אנו משתמשים בתכנית שנקראת קובץ בשפת מכונה.. (Interpreter) איור. תהליך תרגום תכנית לשפת מכונה שאלה. נכתבו שתי תכניות: האחת בשפת פסקל והשנייה בשפת C. שתי התכניות אמורות לרוץ על מחשב של חברת אפל ועל מחשב של חברת אינטל. מהו מספר המהדרים ומספר שפות המכונה הדרושים כדי שהתכניות תוכלנה לרוץ על שני סוגי המחשבים? כדוגמה להוראות בשפה עילית והוראות בשפה נמוכה נכתוב הוראות לביצוע הפעולה המתמטית: result = count + count2 + count3
מבוא למערכות מחשב ואסמבלי בשפה עילית, פעולה זו נכתבת כהוראה אחת. לדוגמה, בשפת פסקל נרשום את result: = count + count2 + count3; ובאופן דומה, בשפת C נרשום: result = count + count2 + count3; כדי לרשום הוראות מתאימות בשפת אסמבלי, ההוראה עלינו לדעת מהו המחשב עליו תתבצע התכנית. בספר זה נשתמש בשפת אסמבלי המתאימה למעבדי אינטל המותקנים, בין השאר, גם במחשבים אישיים (מחשב אישי PC.(Personal Computer המעבד הוא החלק העיקרי במחשב שבו מורצת התכנית; בהמשך נלמד עליו בהרחבה. נציג לכם כעת סדרת הוראות בטבלה.. שאפשר לרשום בשפת אסמבלי טבלה. קטע תכנית בשפת אסמבלי ובשפת מכונה למעבד אינטל. הסתכלו בעמודה השמאלית הוראה בשפת אסמבלי mov AX, count add AX, count2 add AX, count3 mov result, AX הסבר ההוראה שים את count חשב ב- AX ההוראה בשפת מכונה,AX+count2 ושים את התוצאה ב- AX חשב,AX+count3 ושים את התוצאה ב- AX שים את ב- result AX ההוראה MOV היא הוראת השמה, וההוראה ADD היא הוראת חיבור המוזכר AX בהוראות אלו הוא סוג של רכיב חומרה המכונה "אוגר", עליו נלמד בהמשך, ובו ניתן לאחסן נתונים המשתתפים בפעולות אלו. העמודה השנייה של טבלה., כל אחת מן ההוראות בשפת אסמבלי להוראה בשפת מכונה. מציגה את התרגום של במדעי המחשב קיימים כמה תחומים בהם חשובה ההיכרות עם שפה נמוכה. אחד התחומים הוא פיתוח מהדר (קומפיילר) המתרגם תכנית משפה עילית לתכנית בשפת מכונה. מפתח של קומפיילר צריך להכיר בצורה מעמיקה את שפת המכונה ומבנה המחשב, כך
המחשב הדיגיטלי שהתכנית המתורגמת על-ידי הקומפיילר שהוא מפתח, תנצל בצורה יעילה את המשאבים שהמחשב מספק. גם מפתחים של מערכות הפעלה משתמשים בשפת אסמבלי בחלק מן התכניות. מערכת הפעלה היא תוכנה המתווכת בין משתמש מחשב (משתמש ביישום או מתכנת) לבין החומרה, והיא מספקת ממשק בעזרתו יכול המשתמש להפעיל יישומים שונים. מערכת ההפעלה מטפלת בהרצה של כמה תכניות במקביל; היא אחראית לחלוקת הזיכרון בין כל התכניות המורצות במחשב באותו זמן, והיא קובעת מתי ואיזו תכנית תתבצע במעבד בכל רגע ורגע. בנוסף, מערכת ההפעלה מספקת שירותים שונים, בהם יכולים מתכנתים בשפה עילית להשתמש, כדי לטפל בקלט המועבר מן המקלדת או מן העכבר, להציג פלט על הצג וכדומה. דוגמאות למערכות הפעלה נפוצות: Linux,Windows וכדומה. תחום נוסף הוא מערכות משובצות מחשב System) (Embedded בהן משתמשים בבקרים זעירים, המשובצים במכשירים שונים, כמו: כלי-רכב, טלוויזיה, או מיקרו גל. תפקיד הבקר הזעיר הוא לפקח על פעולת המכשיר. הבקר הזעיר ניתן לתכנות והמבנה שלו דומה למבנה של מחשב, אבל הוא לא כולל התקנים היקפיים, כמו: מקלדת, צג, או דיסק קשיח. התקשורת בין הבקר לחלקי המערכת האחרים מתבצעת באמצעות אותות חשמליים, המועברים כקלט מהמכשיר לבקר הזעיר, אשר מוציא אותות חשמליים ששולטים על פעולת המכשיר, בהתאם לתכנית השמורה בו. כמו-כן, כל מתכנת בשפה עילית צריך להבין איך המחשב פועל ואיך החומרה משפיעה על ההתנהגות של התכנית בשפה העילית בה הוא כותב, וכך הוא יוכל לכתוב תכניות המנצלות את המכונה באופן יעיל יותר. לכן התנסות בכתיבה תכניות בשפת אסמבלי, שבה יש התייחסות לחומרה, מאפשרת להבין את עקרונות הפעולה והמבנה של מחשב..2 מודל מופשט של מחשב המחשב הוא מערכת מורכבת מאוד המיועדת למשתמשים רבים, שלכל אחד מהם צרכים מגוונים. באיור.2 מוצג מודל המתאר רמות שונות של הפשטה של המחשב. בכל רמה מתייחסים לתיאור מופשט (אבסטרקטי) של הפעולות המתבצעות באותה רמה, בלי להיכנס
2 מבוא למערכות מחשב ואסמבלי לפרטים כיצד ימומשו פעולות אלה, מפני שקיימת רמה נמוכה יותר שתפקידה לטפל במימוש הפעולות. ברמה העליונה, רמה L6, המשתמש ביישומי מחשב (כמו משחקים, מעבד תמלילים, תוכנה לניהול משרד) מתקשר עם המחשב באמצעות ממשק משתמש הכולל בדרך-כלל תפריטים, כפתורים וצלמיות. המשתמש מתעניין בפעולות שהיישום מאפשר לו והוא מניח כי קיימת שכבה נמוכה יותר, רמה L5, שבאמצעותה יוגדרו הפעולות של היישום. להגדרת הפעולות שברמה L5, המתכנת משתמש בהוראות בשפה עילית כלשהי, והוא מניח שקיים, בשכבה נמוכה יותר, מנגנון כלשהו שתפקידו להוציא לפועל את ההוראות ולבצען. המנגנונים שקיימים ברמה נמוכה יותר, רמה L4, התומכים בתכנית ומאפשרים את הרצתה, הם מערכת ההפעלה ומהדר המתאים לשפה שבה הוא נכתב, שתפקידו לתרגם את התכנית לשפת מכונה. חלקים רבים ממערכת ההפעלה כתובים בשפת עילית, אך בנוסף יש חלקים הכתובים בשפת אסמבלי, שנמצאת ברמה L3. באופן דומה, מתכנת בשפת אסמבלי מניח שברמה נמוכה יותר, רמה L2, קיימת שפת מכונה אשר ההוראות בה מקודדות כמספרים בינאריים. ההוראות בשפת אסמבלי ובשפת מכונה מתייחסות לארכיטקטורה של המחשב, המוגדרת ברמה L. הארכיטקטורה מגדירה מודל מופשט של מבנה המחשב ושל הוראות המכונה; הארכיטקטורה ממומשת באמצעות מעגלים ורכיבים אלקטרוניים (מערכת פיזית) הנמצאים ברמה הנמוכה ביותר, רמה L. איור.2 רמות ההפשטה במחשב
המחשב הדיגיטלי 3 בספר זה נתמקד בשתי רמות: שפת אסמבלי והארכיטקטורה של המחשב. מנקודת מבטו של המתכנת, הארכיטקטורה היא מודל לוגי של המחשב. המודל הלוגי מאפשר לנו להבין את המבנה ואת עקרונות של הפעולה של המחשב, בלי לרדת לפרטים הנוגעים לאופן המימוש. מימוש של ארכיטקטורה דורש גם הבנה בטכנולוגיות קיימות, כמו סוגי זיכרונות ומעגלים אלקטרוניים;..2 בספר זה לא נתייחס לטכנולוגיות אלה. בארכיטקטורה של המחשב אנו נתייחס לשני מרכיבים: הארכיטקטורה של אוסף הוראות המכונה Architecture Instruction Set ובקיצור.ISA מנקודת מבט זו אנו מתעניינים בנתונים האלה: הפעולות שהמחשב מסוגל לבצע (למשל, האם כפל היא אחת מפעולות המחשב, או אולי נצטרך בפעולות חיבור בלבד לביצוע הכפל); במבנה של הוראה; בסוגי נתונים בהם המחשב מטפל, ואופן הגישה אליהם. הארכיטקטורה של חומרת המחשב,Hardware System Architecture,HAS המתארת באופן עקרוני כיצד המחשב פועל המכונה. מנקודת מבט זו אנו נתייחס לשאלות כגון: באילו רכיבי חומרה אנו משתמשים בהוראה; מהן היחידות העיקריות במחשב ומה הקשר ביניהן; איזה מידע זורם בין היחידות השונות. ובקיצור כאשר הוא מבצע את הוראות תכנון הארכיטקטורה של מחשב מושפע מגורמים רבים, כמו: היישומים שרוצים להריץ במחשב, הטכנולוגיה, ההיסטוריה של התפתחות המחשבים וגם ההתפתחות הצפויה בתחום המ חשוב. למעשה, רוב המחשבים מבוססים כיום על הארכיטקטורה שפותחה לפני כשישים שנה, והיא ידועה בשם "ארכיטקטורת פון נוימן". פון נוימן וצוות של מדענים פּתחו בשנת 95 מחשב שנקרא EDVAC המבוסס על עקרון "התכנית המאוחסנת", לפיו התכנית מקודדת כמספרים ומאוחסנת באותו זיכרון שבו מאוחסנים הנתונים. לפני כן, המחשבים שנבנו אחסנו את התכניות בנפרד מן הנתונים ובהתאם לכך המחשב כלל יחידה לטיפול בנתונים ויחידה נפרדת לטיפול בתכנית. בהתאם לארכיטקטורה של פון ניומן מערכת מחשב כוללת ארבעה מרכיבים עיקריים: המעבד (Processor) שתפקידו לבצע את התכנית; יחידת הזיכרון (Memory) בה מאוחסנים נתונים והוראות;
4 מבוא למערכות מחשב ואסמבלי ערוצי תקשורת הנקראים (buses) "אפיקים" אשר מקשרים ומעבירים מידע בין המעבד לזיכרון. התקני קלט-פלט איור.3 מבנה מחשב בארכיטקטורה של פון ניומן בסעיף הבא נציג מודל של "מחשב" פשוט, הבנוי לפי העקרונות של פון נוימן. מודל זה יאפשר לנו להדגים את העקרונות הבסיסיים של אופן פעולת המחשב ולעקוב אחר תהליך הביצוע של הוראות השמה והוראות אריתמטיות. מבנה מחשב פשוט ואופן ביצוע ההוראות בשפת מכונה.3 בסעיף זה נגדיר ארכיטקטורה של מחשב פשוט. ארכיטקטורה זו כוללת הגדרה של כמה הוראות מכונה, הגדרת המרכיבים העיקריים של החומרה, והקשרים ביניהם. המחשב שנגדיר מבצע את הפעולות האלה: חיבור השמה השוואה בין שני מספרים המודל שנציג מוגבל בסוג הפעולות שהוא מבצע, ולמרות זאת נשמרים בו העקרונות עליהם מבוססים מחשבים אמיתיים. נתחיל את תיאור הרכיבים העיקריים של המחשב הפשוט מתיאור של הפעולות הדרושות להרצת תכנית בשפת מכונה. כדי לפשט את ההסברים,
המחשב הדיגיטלי 5 במודל של המחשב שאנו מציגים לא נשתמש ביחידות קלט/פלט. בהמשך נראה כי תהליך הביצוע של הוראות קלט/פלט זהה לתהליך הביצוע של הוראות השמה והוראות אריתמטיות. תהליך הביצוע של הוראה בשפת מכונה כולל שני שלבים עיקריים: שלב ההבאה (fetch) קריאת ההוראה ופענוחה שלב הביצוע (execute) ההוראה התהליך של ההבאה והביצוע נקרא גם "מחזור הבאה-וביצוע"..3. מבנה ה"מחשב" הפשוט בסעיף זה נציג את הרכיבים העיקריים ב"מחשב" הפשוט אליהם נתייחס בתהליך הרצת התכנית. א. א. ב. יחידת הזיכרון ב"מחשב" שלנו יחידת הזיכרון בנויה כמערך חד-ממדי המכיל תאים; בכל תא אפשר לאחסן מספר עשרוני בן 6 ספרות. מספר זה יכול להיות נתון, הוראה או כתובת של תא בזיכרון. המעבד פונה לתא מסוים כדי לבצע אחת משתי הפעולות האלה: קריאה של נתון או הוראה; כתיבה של נתון. לשם כך יש לכל תא בזיכרון כתובת שהיא מספר בין ל- 99. במחשב שלנו, לפני הרצת התכנית, אנו רושמים בזיכרון את ההוראות בשפת מכונה, וכל הוראה נמצאת בתא נפרד. כזכור, המחשב שלנו בנוי לפי העקרון של פון נוימן, דהיינו: עקרון התכנית המאוחסנת, ולכן הוראות התכנית מאוחסנות באותו זיכרון שבו מאוחסנים גם הנתונים. לכן, כדי להפריד את הנתונים מההוראות, נרשום את הנתונים בכתובות העליונות של הזיכרון (כגון כתובת 99) 98, ואת התכנית בכתובות הנמוכות של הזיכרון, החל מהכתובת.
6 מבוא למערכות מחשב ואסמבלי ב. המעבד המעבד במחשב שלנו כולל שתי יחידות עיקריות, שכל אחת מהן מטפלת בשלב אחר של מחזור ההבאה-ביצוע: יחידת הבקרה מטפלת בשלב ההבאה של הוראה מהזיכרון (כולל גם פענוח של הוראה) יחידת הביצוע מטפלת בביצוע הוראות אריתמטיות והוראות לוגיות איור.4 מבנה סכמתי של המחשב הפשוט כדי לבצע את שלב ההבאה צריכה יחידת הבקרה לדעת את הכתובת של התא שבו מאוחסנת ההוראה שעליה לבצע, והיא צריכה לשמור את ההוראה שנקראה מהזיכרון כדי שתוכל לפענח אותה. לשם כך כוללת יחידת הבקרה כמה יחידות זיכרון קטנות, שכל אחת מהן היא בגודל תא אחד, היכול להכיל מספר בן 6 ספרות (כמו תא בזיכרון). כל יחידת זיכרון כזו נקראת "אוגר" ;(register) לכל אוגר יש שם שמציין את תפקידו ובו משתמשים כאשר פונים לאוגר. אוגר אחד משמש לשמירת הכתובת של ההוראה שהמעבד מהזיכרון. אוגר זה נקרא "מצביע להוראה" Pointer) Instruction ובקיצור.(IP להביא צריך אוגר שני משמש לשמירת ההוראה שהובאה מהזיכרון אל המעבד והוא נקרא "אוגר הוראות" Register) Instruction ובקיצור.(IR זהו האוגר שבו מאחסנים את ההוראה שצריך לפענח ולעבד.
המחשב הדיגיטלי 7 תפקידה של יחידת הביצוע הוא לבצע את השלב השני בתהליך ביצוע ההוראה; היא מכילה בין השאר כמה רכיבים:. היחידה האריתמטית-לוגית Unit) Arithmetic Logic ובקיצור,(ALU שתפקידה לבצע את הפעולות המוגדרות בהוראות התכנית, כגון: העתקת נתונים ממקום למקום, פעולות אריתמטיות ופעולות לוגיות. 2. שני אוגרים אותם נכנה AX ו- BX. באוגרים אלה מאוחסנים הנתונים בהם משתמשת היחידה האריתמטית-לוגית לביצוע הפעולות השונות. 3. אוגר נוסף הנקרא "אוגר דגלים" register) Flag ובקיצור (FR שבו נשמר מידע על תוצאת ההשוואה. אוגר זה משמש לטיפול בפעולות לוגיות הקשורות להשוואה של מספרים, כמו: האם X? = Y במעקב אחר מחזור ההבאה-והביצוע נתייחס למצב האוגרים והזיכרון שבהם נשמרים ההוראות והנתונים כמתואר באיור.5. איור.5 תיאור הזיכרון והאוגרים במחשב הפשוט מובן שהמחשב צריך להכיל רכיבים רבים נוספים כדי לפעול, מודל של מחשב פשוט ולכן נתעלם משאר הרכיבים. אבל אנו מעוניינים להציג
8 מבוא למערכות מחשב ואסמבלי.3.2 מבנה הוראה בשפת מכונה הוראה בשפת מכונה, כמו הוראה בשפה עילית, מתארת את הפעולה שיש לבצע ואת הנתונים הדרושים לביצוע הפעולה. הפעולה נקראת "אופרטור" ;(operator) דוגמה לאופרטור בשפת אסמבלר:,MOV כאשר מקבילו בשפת C הוא הסימן =. הנתונים נקראים "אופרנדים" ;(operand) דוגמה לאופרנדים תוכלו לראות במשפט ההשמה הרשום להלן בשפה עילית: A=8; A:=8; בשפת C: בשפת פסקל: משפט ההשמה הזה כולל אופרטור אחד (=) ושני אופרנדים: המשתנה A והנתון 8. אך לא לכל המשפטים בשפה עילית יש מבנה פשוט; לדוגמה נרשום משפט מורכב יותר: A=A+B C A:=A+B C; בשפת C: בשפת פסקל: משפט זה כולל שלושה אופרטרים: + = ושלושה אופרנדים: C. B A בשפה עילית יש משפטים יותר מורכבים, כגון משפט for או משפט if הכוללים תנאים לוגיים מורכבים; בהמשך נלמד, שגם בשפת אסמבלי ישנן הוראות הסתעפות, אך הן פשוטות בהרבה מפסוקי הסתעפות בשפות עיליות. בניגוד למורכבות של ההוראות בשפה עילית, המבנה של הוראת מכונה הוא הרבה יותר פשוט. כל הוראה צריכה לכלול רק אופרטור אחד, ומספר האופרנדים משתנה בין ל- 2. מבנה הוראות פשוט מאפשר לבנות חומרה מתאימה לביצוע ההוראה בצורה יעילה. במחשב שלנו הוראה תהיה בנויה במתכונת של אחד משלושת המבנים האלה: [אופרטור [ [אופרנד יעד] ] אופרטור [ הוראה ללא אופרנדים: הוראה עם אופרנד: הוראה עם שני אופרנדים: [אופרנד מקור] [אופרנד יעד] [אופרטור]
המחשב הדיגיטלי 9 שימו לב, הוראה נקראת תמיד משמאל לימין. ההוראה מתחילה תמיד עם מספר המציין את האופרטור ואחר כך נרשמים מספרים המגדירים את האופרנדים. בשפת מכונה של המחשב שלנו, משלושת הסוגים הבאים: נתון מיידי, שזהו נתון שהוא עצמו רשום בהוראה אחד האוגרים BX) (AX, תא בזיכרון אופרנד יכול להיות מאחד כפי שכבר נאמר, הוראה מיוצגת כמספר. כיוון שכל הוראה נשמרת בתא אחד בזיכרון, המספר שמייצג את ההוראה יהיה לכל היותר בן 6 ספרות. כחלק מהגדרת אוסף הוראות המכונה עלינו לקבוע קוד מספרי ייחודי לכל אופרטור ולכל אופרנד, כך שהפענוח של ההוראה יהיה חד משמעי. במחשב שלנו נגדיר כל אופרטור ואופרנד כמספר בין ל- 99. כמו-כן נקבע קודים מספריים לאוגרים המשתתפים בביצוע פעולות אריתמטיות-לוגיות, כאשר: קוד מציין את האוגר AX קוד 2 מציין את האוגר BX לדוגמה, המבנה של הוראה שיש בה שני אופרנדים יהיה: [xx] [yy] [zz] הוא מספר בן שתי ספרות המציין סוג פעולה (אופרטור); ו-[ zz ] הם מספרים בני שתי ספרות המציינים אופרנדים. [xx] [yy] לדוגמה, בהוראה: 6 2 הקוד 6 מציין אופרטור, בדוגמה זו הוראת חיבור (אותה נציג בהמשך), והמספרים 2 ו- מציינים אופרנדים, בדוגמה זו: מציין אוגר,AX ו- 2 הוא נתון מיידי..3.3 כתיבת תכנית המחברת שני משתנים לאחר שהגדרנו מבנה של הוראת מכונה, נגדיר שלוש הוראות: הוראת העברה (זהו המונח המקובל בשפת אסמבלי להשמה), הוראת חיבור והוראה לסיום ביצוע התכנית. לאחר שנדגים כיצד כותבים תכנית פשוטה עם הוראות כאלה, נציג שלושה סוגים נוספים של הוראות, שיאפשרו לכתוב מבנה בקרה מותנה.
2 מבוא למערכות מחשב ואסמבלי הוראת העברה ההוראה הראשונה שנגדיר היא הוראת העברה, אשר מעתיקה את התוכן של אופרנד שנקרא "אופרנד המקור" ומשימה אותו באופרנד שני שנקרא "אופרנד היעד". מסמנים זאת כך: אופרנד מקור אופרנד יעד שימו לב, שזהו סימון בלבד, ולא צורת ההוראה עצמה בתכנית בשפת אסמבלי. ההוראה עצמה בשפת אסמבלי תירשם במבנה הזה: [xx] [yy] [zz] סוגי האופרנדים האפשריים בהוראה כזו הם: אופרנד היעד חייב להיות רכיב זיכרון שבו ניתן לשמור את הנתון ולכן הוא יכול להיות אחד משני האוגרים AX, BX או תא בזיכרון. אופרנד המקור יכול להיות אחד מארבע האפשרויות: נתון מיידי, אוגר AX או אוגר BX או תא בזיכרון. הגדרת סוגי האופרנדים הללו לא מאפשרת העברה ישירה של הנתונים בין שתי כתובות בזיכרון, והיא קובעת חמישה צירופים של אופרנדים בהם מותר להשתמש בהוראה זו: נתון מיידי אוגר תוכן אוגר אוגר תוכן כתובת בזיכרון אוגר נתון מיידי כתובת בזיכרון תוכן אוגר כתובת בזיכרון בהתאם, נגדיר חמש הוראות העברה, שכל אחת מהן מגדירה צירוף מסוים של אופרנדים, ונבחר עבורן את הקודים עד 5. הטבלה הבאה מתארת את קוד הפעולה של הוראות ההעברה.
המחשב הדיגיטלי 2 טבלה.2 הוראות העברה מספר מציין קוד פעולה 2 3 4 5 תיאור של ההוראה נתון מיידי אוגר יעד אוגר מקור אוגר יעד תוכן כתובת בזיכרון אוגר יעד נתון מיידי כתובת בזיכרון אוגר מקור כתובת בזיכרון נתאר כמה דוגמאות להוראות השמה: 27 2 2 4 99 27 שים את הנתון 27 באוגר AX שים את תוכן האוגר BX באוגר AX שים את הנתון 27 בכתובת 99 בזיכרון חשבו, כיצד נעתיק תוכן תא שכתובתו 99 לתא שכתובתו 98? צירופי האופרנדים מוגבלים, לכן לא נוכל לרשום את הצירוף: שים את תוכן כתובת תא 99 בכתובת תא 98 לכן, עלינו לרשום שתי הוראות: ההוראה 3 99 שפירושה "שים תוכן כתובת תא 99 באוגר וההוראה 5 98 שפירושה שים תוכן AX בתא שכתובתו "AX 98 שימוש בקודים מספריים עשוי לבלבל. למשל המספר יכול להיות אחד מאלה: נתון מיידי, כלומר: הנתון עצמו; מציין של אוגר ;AX כתובת תא בזיכרון; קוד של אופרטור; כיצד המעבד יבדיל ביניהם? התשובה לכך פשוטה: המעבד מבדיל בין אופרטור לאופרנד על-פי מיקום הקוד בהוראה. במחשב הפשוט ההוראה מתחילה תמיד בקוד של אופרטור.
22 מבוא למערכות מחשב ואסמבלי לדוגמה: הוראה המתחילה ב- היא הוראת השמה של נתון באוגר מסוים, והמספר במקרה זה מציין את אופרטור פעולת ההשמה; ואילו המופיע במיקום 3 ו- 4 (yy) או במיקום 5 ו- 6 (zz) יכול להיות נתון מיידי (המספר עצמו) או האוגר AX או כתובת בזיכרון. כדי להבטיח פענוח חד משמעי של ההוראה, נגדיר קודי הוראה שונים, בהתאם לסוג הפעולה ולסוג האופרנדים עליהם היא מתבצעת. כך לדוגמה, הגדרנו קוד 2 להעברה של תוכן אוגר אחד לאוגר אחר וקוד נוסף 5 להעברה של תוכן אוגר לתא בזיכרון. כלומר, לכל פעולה נגדיר משפחה של הוראות מכונה, שבה האופרטור מתאר פעולה זהה המתבצעת על צירוף שונה של אופרנדים. לדוגמה את ההוראה 23 נוכל לפענח בצורה הבאה: 23 אוגר AX נתון מיידי משמעות ההוראה: קוד פעולה AX 23 הוראת חיבור ההוראה השנייה היא הוראת חיבור. הוראה זו כוללת שני אופרנדים והיא ניתנת לתיאור בצורה הבאה: אופרנד מקור + אופרנד יעד אופרנד יעד סוגי האופרנדים האפשריים בהוראה זו הם: אופרנד היעד חייב להיות אחד משני האוגרים AX או BX והוא לא יכול להיות תא בזיכרון; אופרנד המקור יכול להיות אחת משתי אפשרויות: נתון מיידי או אוגר. תוצאת החיבור מושמת תמיד באופרנד היעד. כיוון שהגבלנו את צירופי האופרנדים האפשריים בהוראת חיבור, נצטרך להגדיר רק שתי הוראות חיבור שונות, והן מתוארות בטבלה.3. הקודים שנבחר כקוד פעולה המציינת חיבור הם: 6 ו- 7.
המחשב הדיגיטלי 23 טבלה.3 הוראות חיבור תיאור של ההוראה נתון + אוגר אוגר אוגר מקור + אוגר יעד אוגר יעד מספר מציין קוד פעולה 6 7 נרשום כמה הוראות לדוגמה: 6 27 7 2 ושים את התוצאה ב- AX AX + 27 ושים את התוצאה ב- AX AX + BX חשב חשב המגבלה על סוגי האופרנדים, האפשריים בכל פעולה, מגבילה את מספר ההוראות בהן נוכל להשתמש, אולם היא מאפשרת מבנה מעבד פשוט ויחידת פענוח פשוטה. הוראת סיום כדי לסיים את ביצוע התכנית, נגדיר הוראת סיום שקוד הפעולה שלה הוא הוראה זו היא ללא אופרנדים. ; דוגמה. תכנית לחיבור מספרים נרשום תכנית בשפת המכונה שהגדרנו שתבצע את הפעולות האלה: שים את הנתון 23 במשתנה A שים את הנתון 54 במשתנה B חשב A + B ושים את התוצאה ב- A בתכנית זו A ו- B מציינים משתנים בזיכרון. תהליך התכנון נשתמש בהוראות העברה כדי להשים נתונים למשתנים A ו- B. כיוון שלא קיימת הוראה לחיבור שבה אחד מהאופרנדים הוא תא זיכרון, נעתיק את הנתונים מ- A ו- B אל האוגרים AX ו- BX נחבר אותם ונשמור את התוצאה באוגר.AX לסיום נעתיק את התוצאה מאוגר
24 מבוא למערכות מחשב ואסמבלי AX אל המשתנה A. בנוסף, נגדיר שני תאי זיכרון בכתובות 98 ו- 99 בהן נשתמש. בתא שכתובתו 98 נאחסן את A ובתא שכתובתו 99 נאחסן את B. כעת נרשום תכנית בשפת מכונה של המחשב שלנו: הסבר שים את הנתון 23 בתא שכתובתו 98 שים את הנתון 54 בתא שכתובתו 99 שים את תוכן התא שכתובתו 98 באוגר AX שים את תוכן התא שכתובתו 99 באוגר BX חשב AX+BX ושים את התוצאה באוגר AX שים את תוכן אוגר AX בתא שכתובתו 98 סיום הוראה בשפת מכונה 4 98 23 4 99 54 3 98 3 2 99 7 2 5 98 כדי לבצע את ההוראות, יש לרשום בזיכרון אותן ואת הנתונים, כאשר ההוראות מאוחסנות ברצף של תאים בזיכרון המתחיל בתא שכתובתו. נציין כי במחשב אמיתי מערכת הפעלה כתיבת התכנית לזיכרון מוצג מצב הזיכרון והאוגרים לאחר אחראית על פעולה זו. באיור.6. איור.6 מצב התחלתי של התכנית בדוגמה.
המחשב הדיגיטלי 25 שימו לב, הערך של מונה התכנית האוגר IP הוא, כי הוא אמור להצביע על כתובת ההוראה הראשונה לביצוע. ההוראה האחרונה בתכנית מאוחסנת בתא שכתובתו 6, ואילו התאים שכתובתם 98 ו- 99, המייצגים את המשתנים A ו- B, מכילים ערך לא ידוע. מעקב אחר ביצוע התכנית כעת נעקוב אחר ביצוע התכנית, תוך תיאור מצב הזיכרון ומצב האוגרים בשלבי ההבאה והביצוע של כל הוראה. 4 98 23. ההוראה הראשונה - א. השלב הראשון בביצוע ההוראה הוא שלב ההבאה והוא כולל את הפעולות האלה: המעבד קורא מהתא בזיכרון, שכתובתו (עליו IP מצביע) ומאחסן אותה באוגר ההוראות.IR את ההוראה הראשונה המעבד מקדם את אוגר IP ב-, כך שהוא יצביע על ההוראה הבאה (השנייה בתכנית). המעבד מפענח את ההוראה כדי לדעת מה עליו לבצע. מצב האוגרים והזיכרון בסיום שלב ההבאה של ההוראה הראשונה מוצג באיור.7 א. איור.7 א סיום שלב ההבאה של ההוראה: 4 98 23 ב. השלב השני ביצוע ההוראה
ה ) 26 מבוא למערכות מחשב ואסמבלי.98 המעבד כותב את הנתון 23 בתא שכתובתו מצב האוגרים והזיכרון בסיום ההוראה מתואר באיור.7 ב. איור.7 ב סיום שלב הביצוע של ההוראה 4 98 23.2 ההוראה השנייה 54 4 99 מאחר ששלב הביצוע במחזור ההבאה-ביצוע הסתיים, ההבאה הבא. להלן תיאור ההתרחשויות: עוברת יחידת הבקרה אל שלב א. שלב ההבאה של ההוראה השנייה דומה לשלב ההבאה של ההוראה הראשונה, כלומר: המעבד קורא מהזיכרון את ההוראה מכתובת כתובת ששמורה באוגר (IP ומיד מקדם את אוגר IP ב-, כך שהוא יצביע על ההוראה הבאה (השלישית בתכנית, שכתובתה 2). לאחר מכן הוא מפענח את ההוראה שהובאה זה עתה, דהיינו: ההוראה השנייה. בסיום שלב ההבאה של ההוראה השנייה מצב האוגרים והזיכרון הוא:
המחשב הדיגיטלי 27 איור.8 א סיום שלב ההבאה של ההוראה 4 99 54 ב. בשלב הביצוע כותב המעבד את הנתון 54 בתא שכתובתו 99. מצב האוגרים והזיכרון לאחר ביצוע ההוראה השנייה הוא: איור.8 ב סיום שלב הביצוע של ההוראה 4 99 54
ה ) 28 מבוא למערכות מחשב ואסמבלי.3 ההוראה השלישית 98 3 בשלב ההבאה קורא המעבד מהזיכרון את ההוראה השלישית מכתובת 2 באוגר (IP כתובת שמורה ומקדם את אוגר IP ב-, כך שהוא מצביע על ההוראה הבאה (הרביעית בתכנית). לאחר פענוח ההוראה מתחיל שלב הביצוע: המעבד פונה לזיכרון כדי לקרוא את הנתון מכתובת 98 ואחסונו באוגר.AX לאחר ביצוע הוראה זו מצב האוגרים והזיכרון הוא: איור.9 סיום מחזור הבאה-ביצוע של ההוראה 3 98.4 ההוראה הרביעית 99 3 2 תהליך ביצוע ההוראה הזו וההוראות הבאות הוא זהה, לכן נסתפק בהצגת מצב הזיכרון והאוגרים בסיום ההוראה. בסיום הוראה זו נקרא הנתון 54 מהתא שכתובתו 98 ונשמר באוגר.BX לאחר ביצוע הוראה זו מצב האוגרים והזיכרון הוא כמתואר באיור...54.5 ההוראה החמישית 2 7 בסיום ביצוע הוראה זו, האוגר AX מכיל את הסכום של + 23 האוגרים והזיכרון בסיום ביצוע ההוראה הוא כמתואר באיור.. בהתאם לכך מצב
המחשב הדיגיטלי 29 איור. סיום מחזור הבאה-ביצוע של ההוראה 3 2 99.6 איור. סיום מחזור הבאה-ביצוע של ההוראה 7 2 ההוראה השישית 5 98 בעת ביצוע הוראה זו המעבד כותב את התוצאה 77 לתא שכתובתו.98 ההבאה-ביצוע של הוראה זו מצב האוגרים והזיכרון הוא כמתואר באיור.2. בסיום מחזור
3 מבוא למערכות מחשב ואסמבלי.7 איור.2 סיום מחזור ההבאה-ביצוע של ההוראה 5 98 ההוראה השביעית לאחר ביצוע ההוראה השישית, האוגר IP יצביע על כתובת התא 6 המכילה הוראה לסיום התכנית. המעבד יפסיק את פעולתו לאחר שיקרא את ההוראה ויפענח אותה. שאלה.2 א. רשמו הוראות מכונה לחיבור תוכן התא שכתובתו 99 עם התא שכתובתו 98 ולשמירת התוצאה בתא שכתובתו 99. ב. כתבו הוראות מכונה שיגדילו ב- 2 את תוכנו של תא שכתובתו 99. שאלה.3 כתבו הוראות בשפת מכונה לביצוע רצף הפעולות האלה: שים 34 במשתנה A שים 5 במשתנה B הגדל את ערכו של A ב- חשב A+B ושים את התוצאה ב- B הניחו כי למשתנה A מוקצה התא שכתובתו 98 ולמשתנה B מוקצה התא שכתובתו 99.
המחשב הדיגיטלי 3 שאלה.4 א. כתבו הוראות בשפת מכונה לביצוע רצף הפעולות האלה: שים 5 במשתנה A שים 32 במשתנה B חשב A+B+9 ושים את התוצאה ב- A ב. תארו את מצב הזיכרון והאוגרים (באמצעות מפת זיכרון) לאחר ביצוע מחזור ההבאה- ביצוע של כל אחת מהוראות התכנית. הניחו כי הוראות התכנית מאוחסנות בזיכרון ברצף תאים, החל מתא שכתובתו ואילו המשתנים A ו- B מאוחסנים בתאים שכתובתם 98 ו- 99..3.4 ביצוע תכנית הכוללת הוראות בקרה תכניות רבות כוללות לא רק ביצוע הוראות באופן סדרתי, הוראה אחר הוראה, אלא גם ביצוע מותנה (הוראות תנאי) ולולאות. נניח שברצוננו לבצע את הפעולה הזו: אם A = B A = 2 אחרת B = 2 אזי כדי לכתוב פעולה זו בשפת המכונה של המחשב שלנו, עלינו להרחיב תחילה את אוצר ההוראות. עד כה הגדרנו שלושה סוגים (משפחות) של הוראות מכונה (שקוד הפעולה שלהן הוגדר מ- עד 7), ובאפשרותנו לקבוע עוד 92 הוראות מכונה שונות. בסעיף זה נציג עוד שלושה סוגים של הוראות: הוראת השוואה בין שני נתונים הוראת קפיצה (הסתעפות) מותנית הוראת קפיצה בלתי מותנית לסיום נציג תכנית המשתמשת בהוראות אלה למימוש מבנה בקרה מותנה.
32 מבוא למערכות מחשב ואסמבלי הוראת השוואה הסוג הרביעי של הוראות הוא הוראת השוואה. הוראה זו מבצעת השוואה בין שני אופרנדים. במקרה זה אין אופרנד מקור ואופרנד יעד, מאחר שההוראה משווה בין שני האופרנדים, ולא משנה אף אחד מהם, אלא מעדכנת את תוכנו של אוגר הדגלים FR בהתאם לתוצאת ההשוואה; ניתן לומר, האלגוריתם המתאר את אופן ביצוע ההוראה: שבמקרה זה היעד הוא אוגר הדגלים. את נרשום אם האופרנד הראשון = אופרנד השני אזי FR אחרת FR סוגי האופרנדים שאפשר לרשום בהוראה זו הם: האופרנד הראשון יכול להיות אחד משני האוגרים AX או.BX האופרנד השני יכול להיות נתון מיידי או אחד משני האוגרים AX או.BX שימו לב, אף אחד מהאופרנדים אינו יכול להיות תא בזיכרון. בהתאם לצירוף האופרנדים נגדיר שתי הוראות השוואה שונות: טבלה.3 הוראות השוואה תיאור מילולי של ההוראה האם הנתון המיידי = תוכן האוגר הראשון? מספר המציין קוד פעולה 8 9 האם האוגר השני = תוכן האוגר הראשון? אוגר הדגלים יקבל את הערך אם הנתונים שווים, ו- אחרת. ניזכר במטרתנו כתיבת תכנית לביצוע השוואה בין A ו- B. לאחר ביצוע הוראת ההשוואה, יספק לנו אוגר הדגלים מידע שבו נשתמש כדי להחליט אם עלינו לבצע את הוראת ההשמה 2=A או את הוראת ההשמה 2=B. השימוש במידע זה ייעשה בעזרת הוראת קפיצה מותנית.
המחשב הדיגיטלי 33 הוראת קפיצה מותנית בקבוצת ההוראות החמישית יש הוראה אחת בלבד, והיא הוראת הקפיצה המותנית. הוראה זו קובעת מי היא ההוראה הבאה שתתבצע, בהתאם לתוכן אוגר הדגלים. אם אוגר הדגלים מכיל את הערך יועבר הביצוע לכתובת שמציין האופרנד הכלול בהוראה; אחרת אם אוגר הדגלים יכיל את הערך, ביצוע התכנית ימשיך כרגיל, מההוראה העוקבת להוראת הקפיצה המותנית. האלגוריתם הבא מתאר את אופן הביצוע של הוראת הקפיצה המותנית: אם = FR אזי מספר המציין כתובת IP בהוראה זו יש רק אופרנד אחד, שהוא מספר (בין ל- 99 ) המציין את הכתובת של ההוראה ממנה יימשך ביצוע התכנית. נזכור, שבשלב ההבאה הבא, יחידת הבקרה קוראת את ההוראה שכתובתה מצוייה ב- IP. לכן, אם ערכו של אוגר הדגלים הוא, וכתוצאה מכך IP קיבל ערך חדש, הרי שההוראה הבאה תקרא מהזיכרון מהכתובת החדשה. בהוראה זו נגדיר את הקוד לציון האופרטור; מבנה ההוראה הוא: מספר המציין כתובת לדוגמה, משמעות ההוראה 7 היא: אם אוגר הדגלים מכיל את הערך, טען את IP בערך 7; כתוצאה מכך יעבוֹר המחשב לביצוע ההוראה הנמצאת בתא שכתובתו 7. הוראת קפיצה בלתי מותנית ההוראה השישית והאחרונה שנגדיר היא הוראת הקפיצה הבלתי מותנית, אשר מעבירה את הביצוע (ללא תנאי) להוראה כלשהי בתכנית שאינה בהכרח עוקבת להוראה הקודמת. הוראה זו היא בת אופרנד אחד, המציין כתובת של תא בזיכרון שבו נמצאת ההוראה שממנה יימשך ביצוע התכנית. הוראת הקפיצה הבלתי-מותנית מתבצעת בכל מקרה, והיא אינה תלויה בערך של אוגר הדגלים.
34 מבוא למערכות מחשב ואסמבלי בהוראה זו נגדיר את הקוד לציון האופרטור; מספר המציין כתובת המבנה של ההוראה הוא: לדוגמה, משמעות ההוראה 7 היא: טען את IP בערך 7; למעשה, המשמעות היא עבור לביצוע ההוראה הנמצאת בתא שכתובתו 7. מימוש מבנה בקרה רשומה קבוצת הוראות שתבצע את הפעולה הזו: דוגמה.2 בטבלה.5 אם A שווה ל- B אזי שים 2 במשתנה A אחרת שים 2 במשתנה B הוספנו לטבלה עמודה שמתארת את כתובת ההוראה בזיכרון. עמודה זו מסייעת לנו לקבוע את ערך האופרנד הדרוש להוראות קפיצה. כמו כן בחרנו את התא שכתובתו 98 לאחסון A ואת התא שכתובתו 99 לאחסון B. טבלה.5 הוראות התכנית תיאור ההוראה שים תוכן כתובת 98 באוגר AX הוראה בשפת מכונה 3 98 3 2 99 9 2 6 4 99 2 7 4 98 2 מיקום הוראה בזיכרון 2 3 4 5 6 7 שים תוכן כתובת 99 באוגר BX אם AX=BX שים באוגר הדגלים אם תוכן אוגר הדגלים הוא, שים באוגר IP את הכתובת 6 שים 2 בתא שכתובתו 99 שים באוגר IP את הכתובת 7 שים 2 בתא שכתובתו 98 סיום תכנית
המחשב הדיגיטלי 35 בביצוע תכנית זו יש שני מסלולים אפשריים (המוצגים בטבלה.6): מסלול אחד מתבצע כאשר A שונה מ- B ומסלול שני מתבצע כאשר A שווה ל- B. טבלה.6 מסלולי ביצוע של התכנית המממשת מבנה בקרה מסלול ראשון מתבצע כאשר A B שים תוכן כתובת 98 באוגר AX שים תוכן כתובת 99 באוגר BX אם AX = BX שים באוגר הדגלים תוכן אוגר הדגלים הוא, לכן ב- IP מושמת הכתובת 4 מסלול שני מתבצע כאשר A=B שים תוכן כתובת 98 באוגר AX שים תוכן כתובת 99 באוגר BX אם AX = BX שים באוגר הדגלים תוכן אוגר הדגלים הוא, לכן ב- IP מושמת הכתובת 6 שים 2 בתא שכתובתו שים 2 בתא שכתובתו 98 99 שים באוגר IP את הכתובת 7 סיום תכנית סיום תכנית כדי לתאר את המסלול הראשון נניח כי ערכו ההתחלתי של A הוא 4 וערכו ההתחלתי של B הוא 3. מצב האוגרים והזיכרון לפני תחילת ביצוע ההוראה השלישית בתכנית מתואר באיור.3. איור.3 מצב התחלתי של האוגרים והזיכרון כאשר A B
36 מבוא למערכות מחשב ואסמבלי. תיאור תהליך ביצוע התכנית במקרה ש- A B ההוראה הראשונה 3 98 וההוראה השנייה 3 2 99 ביצוע שתי ההוראות הראשונות דומה למחזור הבאה-ביצוע של ההוראה הראשונה בדוגמה הקודמת. לאחר ביצוע הוראות אלה מצב האוגרים והזיכרון הוא: איור.4 סיום מחזור ההבאה-ביצוע של שתי ההוראות הראשונות.2 ההוראה השלישית 9 2 לאחר שלב ההבאה של ההוראה השלישית, המעבד משווה את תוכן אוגרי הנתונים. כיוון שתוכנם שונה, הוא מציב באוגר הדגלים את הערך. לאחר ביצוע הוראה זו מצב האוגרים והזיכרון הוא:
המחשב הדיגיטלי 37 איור.5 סיום מחזור ההבאה-ביצוע של ההוראה 9 2.3 הוראה רביעית 6 זוהי הוראת קפיצה מותנית. כיוון שערכו של,FR= לא תתבצע קפיצה והביצוע ימשיך מההוראה הנוכחית (ההוראה הרביעית) להוראה העוקבת (החמישית, שכתובתה 4). לאחר ביצוע הוראה זו מצב האוגרים והזיכרון הוא: איור.6 סיום מחזור ההבאה-ביצוע של ההוראה 6
38 מבוא למערכות מחשב ואסמבלי.5 הוראה חמישית 4 99 2 תהליך ההבאה-ביצוע של הוראה זו דומה לתהליך ההבאה-ביצוע של ההוראה הראשונה בתכנית. לאחר ביצוע הוראה זו מצב האוגרים והזיכרון הוא: איור.7 סיום מחזור ההבאה-ביצוע של ההוראה 4 99 2.6 הוראה שישית 7 ביצוע הוראה זו גורם לשינוי הערך של אוגר IP (לאחר שלפני כן הוא קודם ב- ). לכן נתאר בפירוט את שלב ההבאה ושלב הביצוע. שלב ההבאה דומה לשלב ההבאה של כל הוראה; בסיום שלב זה הערך באוגר IP מקודם ב-, כלומר האוגר יצביע על ההוראה הבאה (הנמצאת בכתובת 6). לאחר שלב ההבאה, מצב האוגרים והזיכרון הוא:
המחשב הדיגיטלי 39 7 איור.8 א סיום שלב ההבאה של ההוראה.7 בשלב הביצוע מעודכן IP אוגר תוכן לערך לאחר ביצוע הוראה זו מצב האוגרים והזיכרון הוא: איור.8 ב סיום שלב הביצוע של ההוראה 7
4 מבוא למערכות מחשב ואסמבלי 7. הוראה שביעית ההוראה בכתובת 7 היא הוראת סיום, ולכן ביצוע התכנית מסתיים. תיאור תהליך ביצוע התכנית במקרה ש- A = B כעת נעקוב אחר ביצוע ההוראות כאשר ערכם ההתחלתי של A ו- B הוא 4. ההוראה. 3 98 וההוראה השנייה 3 2 99 ביצוע שתי ההוראות הראשונות זהה לתהליך הביצוע שתואר במקרה הקודם (בו B). A לאחר ביצוע הוראות אלה, מצב האוגרים והזיכרון הוא : איור.9 סיום מחזור ההבאה-ביצוע של שתי ההוראות הראשונות.2 הוראה שלישית :9 2 שלב ההבאה-ביצוע של ההוראה השלישית במקרה זה, דומה לשלב ההבאה-ביצוע של ההוראה השלישית שתיארנו במקרה הקודם בו A שונה מ- B, אלא שהפעם תוצאת ההשוואה היא "אמת", ולכן אוגר הדגלים מתעדכן וערכו הוא. לאחר ביצוע הוראה זו מצב האוגרים והזיכרון הוא:
המחשב הדיגיטלי 4.3 איור.2 סיום מחזור הבאה-ביצוע של ההוראה 2 9 הוראה רביעית 6 כיוון ש- FR=, מתבצעת קפיצה, ולכן האוגר IP מתעדכן פעמיים: פעם ראשונה בשלב ההבאה, לאחר קידום IP ב- (וערכו 4) פעם שנייה בשלב הביצוע של הוראת הקפיצה המותנית, וערכו של IP נקבע ל- 6. לאחר ביצוע הוראה זו מצב האוגרים והזיכרון הוא: איור.2 סיום מחזור הבאה-ביצוע של ההוראה 6
42 מבוא למערכות מחשב ואסמבלי.98.4 הוראה חמישית 4 98 2 בסיום מחזור ההבאה-ביצוע של הוראה זו, מאוחסן הערך 2 בתא שכתובתו ההוראה הבאה () מסיימת את ביצוע התכנית. שאלה.5 כתבו תכנית, בשפת מכונה, שתבצע את הפעולות האלה: B 5 A B B + 5 אם A = B אזי A A*2 הדגימו את מהלך הביצוע של התכנית שכתבתם. הניחו כי הקצו ל- A את התא שכתובתו 98 ול- B הקצו את התא שכתובתו 99..4 הקשר בין יחידות המחשב בסעיף זה נתאר כיצד זורמים הנתונים וההוראות בין המעבד והזיכרון. הקשר בין המעבד לזיכרון מתבצע באמצעות האפיקים (איו.4). בכל מחשב יש שלושה סוגים של אפיקים: אפיק הנתונים bus) (Data בו מועברים נתונים והוראות אפיק הכתובות bus) (Address בו מועברות כתובות של תאי זיכרון אפיק הבקרה bus) (Control בו מועבר סוג הפעולה: קריאה או כתיבה כל אפיק מורכב ממספר תילים ("חוטי חשמל") שבכל אחד מהם מועבר אות חשמלי שהוא חלק מהמידע הזורם באפיקים בין המעבד והזיכרון. כזכור, המעבד פונה לזיכרון כדי לקרוא הוראה או נתון וכדי לכתוב נתונים. בהתאם לכך ניתן להגדיר שני סוגים של מחזורי אפיק. מחזור אפיק היא פעולה אחת של העברת מידע באמצעות האפיקים בין המעבד ליחידת הזיכרון.
המחשב הדיגיטלי 43 א. מחזור קריאה לדוגמה, כדי לקרוא הוראה, המאוחסנת בתא שכתובתו היא, המעבד מבצע את הפעולות האלה: המעבד רושם באפיק הכתובות את הערך ; פעולת קריאה ;(read) המעבד רושם באפיק הבקרה את סוג הפעולה הדרושה יחידת הזיכרון מעתיקה את ההוראה המאוחסנת בתא שכתובתו אל אפיק הנתונים; המעבד מעביר את תוכן אפיק הנתונים אל אוגר ההוראות. איור.22 קריאת הוראה מהזיכרון ב. מחזור כתיבה לדוגמה, כדי לכתוב את הנתון 23 בתא שכתובתו 98 המעבד, מבצע את הפעולות האלה: המעבד רושם באפיק הכתובות את הערך 98 שבו יאוחסן הנתון; המעבד רושם באפיק הנתונים את הנתון 23; המעבד רושם באפיק הבקרה כי הפעולה היא כתיבה.(write) איור.23 כתיבת נתון בזיכרון
44 מבוא למערכות מחשב ואסמבלי כל הפעולות הללו מתבצעות בזמנים שנקבעים על-ידי אותות שמפיק שעון פנימי שנמצא במעבד. תפקיד השעון הפנימי הוא לסנכרן את פעולתן של היחידות השונות של המחשב; בכך דומה תפקיד השעון לתפקידו של מנצח בתזמורת, הקובע בהינף שרביט מתי להתחיל ומתי להפסיק לנגן. כדי לבצע את הסנכרון, השעון מפיק אותות חשמליים המשתנים בצורה מחזורית בין רמת מתח גבוהה (לדוגמה 3V) לרמת מתח נמוכה של V. פעולה יכולה להתחיל, למשל, כאשר המתח עולה מרמת המתח הנמוכה לרמת המתח הגבוהה; שינויים אלה אפשר לתאר כגל ריבועי (ראו איור.24). בכל שנייה השעון מפיק מספר מחזורים גדול וככל שמספר מחזורי השעון גדול ביצוע התכנית קצר יותר. לדוגמה שעון המעבד 886 (אותו נציג בהמשך) מפיק 5 מיליון מחזורים בשנייה ואילו שעון מעבד "פנטיום 4" מפיק 3.6 מיליארד (אלף מיליון) מחזורים בשנייה. אם נניח כי ביצוע הוראת חיבור (ADD) אורך מחזורי שעון, אזי במעבד 886 ניתן יהיה לבצע 5, הוראות חיבור בשנייה ואילו במעבד פנטיום 4 נוכל לבצע 36,, הוראות חיבור בשנייה. איור.24 אותות שעון מחזור ההבאה-ביצוע, או ביצוע מחזור אפיק, יכול להימשך מספר מחזורי שעון. משך ביצוע ההוראה תלוי בארכיטקטורה של המעבד, וקיימים גורמים רבים שמשפיעים על זמן זה. אחד הגורמים שמשפיע על משך ביצוע ההוראה הוא סוג הפעולה. לדוגמה, זמן הביצוע הדרוש להוראת כפל הוא ארוך מאוד, בעוד שזמן הביצוע הדרוש לחיבור קצר בהרבה. גורם נוסף הוא פנייה לזיכרון, כדי לקרוא תוכן תא בזיכרון עליו מתבצעת הפעולה. לדוגמה: בהוראה כמו 7 2 המחברת בין שני אוגרים, אין צורך לפנות לזיכרון. במקרה כזה, זמן ביצוע ההוראה (כלומר, השלמת מחזור ההבאה-ביצוע) קצר יותר מאשר ביצוע של הוראה שבה אחד מהאופרנדים הוא תא בזיכרון. בדרך-כלל, כאשר ביצוע הוראה כרוך בכמה גישות לזיכרון, משך ביצוע ההוראה הוא ממושך. במהלך כתיבת התכנית יכול המתכנת לבחור הוראות שזמן ביצוען קצר יותר, וכך להשפיע על משך הביצוע של התכנית כולה. בנושא זה נרחיב את ההסבר בפרק השישי של הספר.
המחשב הדיגיטלי 45 עד כה תיארנו כיצד מתבצע הקשר בין המעבד לזיכרון, אך כל מחשב מכיל יחידת קלט/פלט המחוברת גם היא למעבד באמצעות שלושת האפיקים. לכל התקן קלט/פלט יש כתובת ייחודית. כאשר כתובת מועברת באפיק הכתובות, היא מועברת באפיק הכתובות לזיכרון וגם להתקני הקלט/פלט. באפיק הבקרה המעבד מציין לא רק את סוג הפעולה אלא גם את סוג היחידה אליה הוא פונה: זיכרון או התקן קלט/פלט. בכל יחידה המחוברת למעבד קיים מעגל המפענח את הכתובת ומזהה אם היא הכתובת ששייכת לו אם לאו. כאשר מופק אות השעון המסנכרן את פעולת היחידות, היחידה שזיהתה שהכתובת באפיק הנתונים שייכת לה, מבצעת את הפעולה הנדרשת, ושאר היחידות אינן מגיבות. הדבר דומה לכיתה שבה יש מורה אחד והרבה תלמידים וכולם מאזינים לדברי המורה; כאשר המורה רוצה להפנות שאלה לתלמיד מסוים בכיתה, הוא מציין במפורש את שמו (כתובתו). איור.25 חיבור יחידות המחשב לאפיקים סיכום התפתחות טכנולוגית יחד עם שיפור הארכיטקטורה של המחשב ופיתוח תוכנות, אפשר את השינוי הדרמטי שחל בתחום המחשוב ב- 5 השנים האחרונות. אנו רואים כי בטכנולוגיה המגמה היא מצד אחד מזעור ומצד שני מהירויות עבודה גבוהות מאוד ומחיר זול יותר. מאפיינים אלה אפשרו ייצור המוני של מחשבים, ומשום-כך אפשר למצוא אותם כיום בכל בית (כמעט). השיפור בארכיטקטורה ובתוכנה דחף לפיתוח יישומים מורכבים יותר, עשירים בתמונות ובקול (מולטימדיה).
46 מבוא למערכות מחשב ואסמבלי ישנן שאלות רבות המעניינות כיום אנשים שעוסקים בתחום המחשוב. לדוגמה: האם יימשך השיפור בטכנולוגיה, או שהגענו לגבול העליון בניצול החומרים מהם הטכנולוגיה בנויה? האם ניתן לשפר את הארכיטקטורה של פון-נוימן כדי לנצל את חומרת המחשב טוב יותר, או שהגיע הזמן לחשוב על ארכיטקטורה אחרת? בהתבסס על הטכנולוגיות הקיימות, אילו סוגי יישומים נוכל לפתח בעתיד, שלא פותחו עד היום? בפרק האחרון של ספר זה ננסה לתאר את המעבדים המודרניים ואת המגבלות של ארכיטקטורת פון-נוימן עליה מבוססים מעבדים אלה.
ייצוג מידע במחשב 47 ייצוג מידע במחשב 2. מבוא המחשב מעבד יישומים רבים ומגוונים, לדוגמה: יישומים לעיבוד נתונים מספריים (עיבוד ציונים של תלמידי בית-ספר, חישובים ועיבוד נוסחאות בפיזיקה וכדומה), מעבדי תמלילים המטפלים בטקסטים, משחקים הכוללים הצגת אנימציות וקול, שידורי אינטרנט המעבירים קול ווידאו, ועוד. עלינו לזכור, שכל מגוון הנתונים ביישומים אלו מיוצג בסופו של דבר בייצוג שהמחשב מבין הוא הייצוג הבינארי. הייצוג הבינארי מכיל רק שני סימנים (או שתי ספרות): אפס ואחד; המידע שאנו מייצגים, בין אם זה מספרים, טקסט, תמונה או קול, מומר למספרים המורכבים מרצף של ו-. לדוגמה: או. הסיבה לשימוש בשיטת ייצוג זו היא: המחשב בנוי מרכיבים אלקטרוניים העשויים להימצא באחד משני מצבים אפשריים בלבד; כגון: "יש זרם ברכיב" (מצב שנהוג לסמנו כ- ) או "אין זרם ברכיב" (מצב שנהוג לסמנו כ- ). כדי לבצע המרה משיטת ייצוג אחת לשיטה אחרת, המיוצג בשיטה הראשונה, משתמשים בכללי המרה. מגדירים כללי ההמרה ערך שיתאים לשיטה האחרת. לכל ערך כללי ההמרה הם מגוונים. לעיתים ניתן לנסח אותם בעזרת נוסחאות ולעיתים בעזרת טבלאות תרגום או בשיטות אחרות. לדוגמה: כדי להמיר מטר לסנטימטרים, עלינו להכפילו ב- וכדי להמיר סנטימטר למטרים נצטרך לחלק ב- ; דוגמה אחרת: כדי להציג אות אלפבית באמצעות מספר, נשתמש בטבלה (למשל הגימטרייה של האות ריש היא 2). אחד העקרונות החשובים בהמרה מייצוג מידע בתחום אחד לייצוג בתחום אחר, הוא שימור המידע משמע, שני הייצוגים צריכים לתאר את אותו מידע. ובמילים אחרות, צריכה להיות התאמה חד-חד ערכית בין הייצוגים. כך לדוגמה, ניתן לרשום טמפרטורה בסולם צלסיוס ולהמירה לייצוג בסולם פרנהייט תוך כדי שימור מידע. אולם לא תמיד ההמרה משמרת מידע. לדוגמה, אפשר להציג ציון של תלמיד כמספר בין ל- או באמצעות מילים מתוך קבוצה של מילים קבועות (למשל טוב מאוד, טוב וכדומה). אפשר להמיר לציון
48 מבוא למערכות מחשב ואסמבלי מילולי כל ציון המבוטא כמספר, למשל, כל ציון בין 85 ל- 95 יומר לציון "טוב מאוד", אבל המרה הפוכה לא תהיה מדויקת. כלומר, אם התלמיד קיבל ציון "טוב מאוד" לא נוכל לדעת אם הציון המספרי שקיבל הוא 89 או 93. לכן, בעת ביצוע המרה משיטת ייצוג אחת לשיטת ייצוג אחרת, עלינו לבדוק אם שימור המידע מתקיים, ואם אינו מתקיים עלינו לבדוק אם איבוד חלק מהמידע מפריע לביצוע המשימה. בפרק זה נתאר כיצד ניתן להציג מידע בייצוג בינארי. נתאר את הייצוג של מספרים שלמים ומספרים לא-שלמים בשיטות הספירה המקובלות כיום. נתמקד בשיטה העשרונית, בשיטות המקובלות במחשבים, ונציג שיטות להמרה מייצוג לייצוג. כמו-כן נתאר שיטות לייצוג טקסט, תמונות וקול בייצוג בינארי. לסיום נציג את יחידות הזיכרון בהן מאוחסן המידע הבינארי. 2.2 ייצוג מספרים שלמים בחיי היומיום אנו רגילים להשתמש במספרים המוצגים בשיטה העשרונית. ייצוג מספרים בשיטה העשרונית מבוסס על שיטת הספירה המיקומית, שפותחה על-ידי הבבלים בתקופה שבין * 2 ל- 3 לפנה"ס. בשיטת ספירה זו משתמשים באוסף סימנים קבוע, המייצג ספרות, והערך של כל ספרה נקבע על-פי מיקומה במספר. במילים אחרות, לאחר שקובעים מספר כלשהו b בתור בסיס הספירה, מגדירים b סימנים בסיסיים עבור המספרים 2,,, b, שנקראים גם ספרות.(digits) בעזרת הספרות הללו ניתן לייצג כל מספר שלם. ערכו של מספר שבסיס הספירה שלו הוא b, שצורתו הכללית היא: a a n a n 2 a a n b n + a n b n- + a n 2 b n 2 + + a b יינתן על-ידי הנוסחה: כאשר a i היא אחת מספרות שיטת הספירה, כלומר a i < b. מערכת המספרים הקדומה ביותר שהתפתחה במצרים העתיקה ב- 35 לפנה"ס הייתה מערכת מספרים אדיטיבית (חיבורית). במערכת מספרים אדיטיבית, מספר כלשהו b נבחר כבסיס הספירה ונוצרו סימנים בסיסיים עבור החזקות השונות של הבסיס, b, b 2, b 3 י, b וכו'. לאחר מכן כל מספר נכתב על-ידי צירוף של הסימנים הבסיסיים, כאשר הערך של המספר נקבע לפי הסכום של ערכי הסימנים המרכיבים אותו. מידע נוסף ניתן למצוא באתר מטח: http://lib.cet.ac.il/pages/item.asp?item=7878 *
ייצוג מידע במחשב 49 לדוגמה, ערכו של המספר העשרוני (בסיס ספירה ) הבא: 9457362 הוא: 9 6 + 4 5 + 5 4 + 7 3 + 3 2 + 6 + 2 או, במילים אחרות: 9 + 4 + 5 + 7 + 3 + 6 + 2 שימו לב, שכל אחת מהספרות a i היא אחת מהספרות העשרוניות, כלומר < 9 i a. בסעיף זה נתאר את הייצוג של מספרים שלמים בארבע שיטות: בשיטה העשרונית, בשיטה הבינארית, בשיטה ההקסדצימלית (בסיס 6) ובשיטה האוקטלית (בסיס 8). 2.2. שיטת הספירה העשרונית בשיטת הספירה העשרונית (בה אנו רגילים להשתמש), בסיס הספירה b הוא וקיימות בה עשר ספרות: 2 3 4 5 6 7 8 9 כאשר כותבים, לדוגמה, את המספר 5827, הערך של כל אחת מהספרות במספר נקבע לפי המיקום שלה, כפי שמראה טבלה 2.. טבלה 2. ערך המיקום של הספרות במספר 5827 ערך המיקום 5 8 2 ספרות המספר 7 הספרה 7 רשומה ראשונה בצד ימין של הטבלה; ערך המיקום שלה הוא ולכן היא מציינת יחידות; הספרה 2 רשומה משבצת אחת שמאלה; ערך המיקום שלה הוא ולכן היא מציינת עשרות; הספרה 8 רשומה משבצת נוספת שמאלה; ערך המיקום שלה הוא ולכן היא מציינת מאות;
5 מבוא למערכות מחשב ואסמבלי הספרה האחרונה היא 5; ערך המיקום שלה הוא ולכן היא מציינת אלפים. מקובל להגדיר את הספרה בעלת ערך המיקום הגבוה ביותר כספרה המשמעותית ביותר במספר, ואת הספרה בעלת ערך המיקום הקטן ביותר כספרה הפחות משמעותית. לדוגמה במספר 5287, הספרה המשמעותית ביותר היא 5 (ערך המיקום שלה הוא ) והספרה הפחות משמעותית במספר היא 7 (ערך המיקום שלה ). נהוג למספר את מיקום הספרות במספר החל מ- (הספרה הפחות משמעותית). שיטה זו מאפשרת לרשום בצורה נוחה את ערך המיקום של ספרה כחזקה של : 5827 = 5 3 + 8 2 + 2 + 7,5827 שימו לב, שהמספר הכתוב בכתב קטן מימין למספר מציין שמדובר במספר בבסיס. באופן כללי, ברישום מספרים בשיטת ייצוג עשרונית משמיטים את רישום.5827 5827 הבסיס, ולכן במקום לרשום רושמים בכל שיטת ספירה אחרת מקובל לרשום את הבסיס ליד המספר, וכך נוכל להבחין בין מספר בשיטת ספירה עשרונית למספר בשיטת ספירה אחרת. שיטת הספירה המיקומית מאפשרת להציג בדרך דומה גם מספרים לא שלמים, לדוגמה. או 293.46. כדי להבדיל בין החלק השלם והשבר במספר אנו מוסיפים את הנקודה '+' העשרונית. כמו כן ניתן לרשום מספרים עם סימן על-ידי הוספת הסימן לציין מספר חיובי והסימן ' ' לציין מספר שלילי. מספרים עם סימן מכונים "מספרים מכוונים" (מלשון "כיוון"). חשבו: כיצד נקבע ערך המיקום של הספרות בשבר? כדי לענות על השאלה נרשום את המספר כסכום של מכפלת כל ספרה בערך המיקום שלה, לדוגמה:.46 = 4. + 6. +. מדוגמה זו ניתן ללמוד כי ערך המיקום של ספרה בשבר היא חזקה שלילית של, 6 4 ובהתאם: ערך המיקום של הספרה הוא =., ערך המיקום של הספרה הוא =. 2, וערך המיקום של הספרה הוא = 3.
ייצוג מידע במחשב 5 לסיכום: בשיטת ספירה מיקומית הבסיס הוא, ערך המיקום של מספר מבוטא כחזקה של, והמעריך של החזקה נקבע בהתאם למיקומה בספרה. בחלק השלם של המספר המעריך של החזקה הוא חיובי, ובשבר המעריך של החזקה הוא שלילי. במילים אחרות, מספר K בבסיס יירשם בצורה הזו: K = (a a...a a a a a...a ) = nn2 2 2 m n n2 2 n n2 2 = a + a +... + a + a + a + 2 m 2 m + a + a +... + a a i מציינת ספרה במספר (האות i היא אינדקס המציין את מיקום הספרה בתוך המספר). בחלק השלם של המספר יש n ספרות (המסומנות על-ידי האינדקסים עד n) ובשבר יש m ספרות (המסומנות על-ידי האינדקסים עד m ). כדי לציין מספר עם סימן מוסיפים את הסימן '+' או.' ' שאלה 2. מצאו את ערכה המיקומי של הספרה 7 במספרים העשרוניים האלה: א. 4782 ב. 273589 ג. 48.87 ד..2357 2.2.2 ייצוג בינארי של מספרים שלמים ייצוג בינארי במחשב מבוסס על שיטת הספירה המיקומית, שבה בסיס הספירה הוא b = 2 והיא מכילה שתי ספרות: ו- בלבד. לדוגמה, המספרים 2 ו- 2 מוצגים בשיטה הבינארית. בייצוג בינארי מכנים ספרה בשם סיבית (קיצור של המילים ספרה בּ ינארית) ובאנגלית סיביות (4 ביטים). bit (קיצור של המילים.( binary digit לדוגמה, במספר 2 יש 4 כפי שציינו, כדי לציין שהמספר הוא מספר בינארי נהוג לרשום את הבסיס (במקרה זה: 2) ליד המספר, לדוגמה. 2.b = 2 במספר בינארי, הערכים המיקומים של הספרות במספר הם חזקות של הבסיס לדוגמה טבלה 2.2 מציגה את ערך המיקום של כל ספרה במספר. 2
52 מבוא למערכות מחשב ואסמבלי טבלה 2.2 הערכים המיקומים של המספר 2 5 4 3 2 מיקום הספרה במספר 2 5 2 4 2 3 2 2 2 2 ערך המיקום ספרות המספר שאלה 2.2 א. ציינו את הערך המיקומי של הספרות המודגשות: 2 2 ב. רשמו את הספרה המשמעותית ביותר ואת הספרה הפחות משמעותית בכל מספר. עד כה הראינו כיצד מייצגים מספר בינארי שלם. כאשר רוצים לרשום מספר לא שלם או מספר עם סימן, בשיטת ייצוג מיקומית, צריכים להוסיף נקודה עשרונית או את הסימנים '+' או ' '. אולם, כפי שכבר ציינו, המחשב משתמש רק בשני סימנים, ו-, כדי לייצג מספר בינארי, והוא לא כולל נקודה עשרונית ולא סימן ' ' או '+'. לייצוג מספרים לא שלמים במחשב משתמשים בשיטת הנקודה הצפה המתוארת בפרק זה בסעיף 2.3, ולייצוג מספרים עם סימן משתמשים בשיטת המשלים לשניים המתוארת בפרק הבא, בסעיף 3.2. שאלה 2.3 כתבו את המספרים הבאים כסכום של חזקות: 2 2 ב. א. 2.2.3 המרת מספרים שלמים ללא סימן מייצוג עשרוני לייצוג בינארי ולהיפך בחיי היומיום אנו משתמשים בשיטה העשרונית לייצוג מספרים. לכן, כאשר צריך לחשב את ערכו של מספר המיוצג בשיטה אחרת, נוח לנו להמיר אותו למספר בשיטה העשרונית. לעומת זאת, כדי לייצג את המספר במחשב בשפת אסמבלי עלינו, לדעת לייצג אותו כמספר בינארי או בשיטה לשימוש. ההקסדצימלית שהיא, 6) (בסיס כפי שנראה בהמשך, נוחה יותר
ייצוג מידע במחשב 53 בסעיף זה נתאר תחילה כיצד ניתן להמיר מספרים המיוצגים בשיטה הבינארית למספרים המיוצגים בשיטה העשרונית, ואחר כך נתאר את ההמרה ההפוכה ממספרים המיוצגים בשיטה העשרונית למספרים המיוצגים בשיטה הבינארית. לביצוע ההמרה נשתמש בכמה כללים מתמטיים פשוטים, המבוססים על תיאור של מספר כסכום של מכפלת הספרות בערך המיקום. המרה זו היא המרה משמרת מידע לכל ערך בשיטת ייצוג אחת יש ערך חד-חד ערכי בשיטת ייצוג שנייה. א. המרה של מספר המיוצג בשיטה הבינארית למספר המיוצג בשיטה העשרונית כדי להמיר מספר שלם K משיטת ייצוג בינארית לשיטה העשרונית נרשום את המספר כסכום מכפלת הספרות בערך המיקום ונחשב את הסכום, בצורה הזו: K = a n 2 n + a n 2 2 n 2 + + a i 2 i + + a 2 + a 2 כאשר a i היא ספרה ( או ) ו- i הוא האינדקס המציין את מיקומה במספר. 2 2 לדוגמה: נציג את המספר כסכום של חזקות של ונבצע את החישוב בשיטה העשרונית. הסכום המתקבל הוא המספר בשיטת ייצוג עשרונית. 2 = 2 5 + 2 4 + 2 3 + 2 2 + 2 + 2 = 37 כלומר 37 = 2 שאלה 2.4 המירו את המספרים הבאים למספרים בשיטה העשרונית: 2 ב. א. 2 שאלה 2.5 בּ דקו אם ביטויי היחס הבאים מתקיימים: ג. = 2?5 ב.?25 < 2 א. = 2 8? דרך אחרת לבצע את החישוב היא לרשום בטבלה, מעל לכל ספרה, את ערך המיקום שלה ולסכם את ערכי המיקום שבהם הספרה היא.
54 מבוא למערכות מחשב ואסמבלי טבלה 2.3 מתארת דוגמה לרישום וחישוב ערך עשרוני של מספר בינארי: טבלה 2.3 2 למספר עשרוני המרה של 5 4 3 2 מיקום הספרה 2 5 =32 2 4 =6 2 3 =8 2 2 =4 2 =2 2 = ערך המיקום ספרות המספר 2 המספר העשרוני = 37 32+4+ 2 כדי להשתמש בשיטה זו, רצוי לזכור בעל-פה את לוח החזקות של שחלק ממנו מוצג בטבלה 2.4. טבלה 2.4 ערכי החזקות של 2 2 2 9 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 2 החזקה 24 52 256 28 64 32 6 8 4 2 הערך שאלה 2.6 א. השתמשו בטבלה 2.4 כדי להמיר את המספרים הבינאריים הבאים למספרים המיוצגים בשיטה העשרונית: 2.iii 2.ii 2.i ב. השתמשו בשיטה הבאה להמיר מספר בינארי למספר המיוצג בשיטה העשרונית: 2 = ((((( 2 + ) 2) + ) 2 + ) 2 + ) 2 + כדי לבצע שוב את החישובים שבצעתם בסעיף א. ii ו-א. iii
ייצוג מידע במחשב 55 ב. המרה של מספר המיוצג בשיטה העשרונית למספר בשיטה הבינארית נתאר שתי שיטות להמרה של מספר עשרוני למספר בייצוג בינארי.. שיטה ראשונה בשיטה זו תהליך ההמרה מתחיל במציאת הספרה המשמעותית ביותר במספר המתורגם. לשם כך נשתמש בטבלה 2.4 שהובאה לעיל. לפני שנציג אלגוריתם לביצוע ההמרה נביא תחילה דוגמה לאופן החישוב. כדוגמה, נמיר את המספר 82 למספר בייצוג בינארי. א. תחילה נחפש את החזקה הגבוהה ביותר של 2 שבה ערך המיקום עדיין קטן מ- 82. לשם כך ניעזר בטבלה 2.4 ובה נמצא כי חזקה זו היא = 64 6 2 והיא קובעת את ערך המיקום של הספרה המשמעותית ביותר במספר שהוא: 2 6 = 2 נחסיר את ערך המיקום שמצאנו מהמספר = 8 64 82, והתוצאה המתקבלת היא מספר עשרוני 8 שיש להמירו למספר בינארי. ב. נחזור על הפעולה הקודמת ונחפש את החזקה הגבוהה של קטן מ- 8 ; מעריך חזקה זו הוא 2 4, לכן ערך המיקום של ספרה זו יהיה 6 שבה ערך המיקום עדיין 2 4 = 2 4 = 2 כעת הערך שנותר להציג הוא = 2 6 8. ג. נחזור על התהליך; נחפש את החזקה הגבוהה של 2 שבה ערך המיקום קטן מ- 2. מעריך חזקה זו הוא, לכן ערך המיקום של הספרה הוא 2: הערך שנותר להציג הוא = 2 2, לכן תהליך החישוב הסתיים. 2 = 2
56 מבוא למערכות מחשב ואסמבלי ד. לסיום, נסכם את כל ערכי המיקום שקבלנו: + 2 = 82 כדי לבדוק שהחישוב שביצענו הוא נכון, עשרוני: נמיר את המספר הבינארי שקיבלנו בחזרה למספר טבלה 2.5 המרת המספר 2 למספר עשרוני 6 5 4 3 2 מיקום הספרה 64 32 6 8 4 2 ערך המיקום ספרות המספר 2 המספר העשרוני =64+6+2 82 נתאר אלגוריתם לשימוש בשיטה הזו:.2 האלגוריתם מקבל מספר עשרוני N שלם, לא שלילי, וממיר אותו למספר בינארי M. שים ב- M את הערך כל עוד המספר N גדול מ- בצע את הפעולות הבאות: מצא את ערך המיקום הגבוה ביותר של 2 הוסף את ערך המיקום למספר M הפחת מ- N את ערך המיקום שמצאת שיטה שנייה שקטן או שווה ל- N בשיטה זו ההמרה של מספר עשרוני למספר בינארי מבוססת על תהליך איטראטיבי שבו אנו מחלקים את המספר העשרוני ב- 2, ובכל שלב אנו רושמים את השארית כספרה במספר הבינארי המבוקש (החל מהספרה הפחות משמעותית); לחלוקה החוזרת. התהליך מסתיים כאשר המנה היא. המנה המתקבלת היא הבסיס
ייצוג מידע במחשב 57 לדוגמה, נתאר את תהליך ההמרה של המספר 84 למספר בינארי (בסוגריים אנו מציינים את השארית): 82:2 = 4 () a = 4:2 = 2 () a = 2:2 = () a 2 = :2 = 5 () a 3 = 5:2 = 2 () a 4 = 2:2 = 2 () a 5 = :2 = () a 6 = המספר הבינארי שהתקבל הוא:. 2 התהליך מסתיים שאלה 2.7 המירו את המספרים העשרוניים הבאים למספרים בינאריים; שהוצגו: א. 29 ב. 83 ג. 96 השתמשו בשתי השיטות לסיום נדגיש כי המרת מספרים שלמים, ללא סימן, מייצוג עשרוני לייצוג בינארי ולהיפך, היא משמרת מידע. כלומר, לכל מספר בשיטה העשרונית יש התאמה חד-חד ערכית לשיטה הבינארית. 2.2.4 ייצוג מספרים שלמים ללא סימן בשיטה האוקטלית ובשיטה ההקסדצימלית שיטת הספירה הבינארית היא דלה בסימנים, לכן דרושות, לעיתים קרובות, ספרות רבות (שכולן או כמובן) כדי לרשום מספרים בינאריים, גם כאשר ערכם העשרוני של המספרים אינו גדול. לדוגמה: המספר העשרוני 773 (שהוא בן 3 ספרות) מיוצג בשיטה הבינארית כ-. 2 הוא כולל סיביות!
58 מבוא למערכות מחשב ואסמבלי רצף ארוך המורכב מ- ו- גורם לעיתים קרובות טעויות אנוש ברישום ובקריאה של המספרים הללו. כדי להקטין את אורך המספרים, משתמשים בשיטה ההקסדצימלית (בבסיס 6) או בשיטה האוקטלית (בבסיס 8). הבחירה בשיטות ייצוג אלה אינה מקרית והיא נובעת מכך שהמרה משיטות אלה לייצוג בינארי ובחזרה היא פשוטה ומהירה מאוד. משום כך, בתכניות הכתובות בשפת אסמבלי, נהוג לרשום מספרים בשיטה ההקסדצימלית במקום בשיטה הבינארית. בסעיף זה נציג את שיטות הספירה ההקסדצימלית והאוקטלית, שתיהן שיטות ספירה מיקומיות, ונתאר את אופן ההמרה משיטות אלה לשיטה הבינארית ולשיטה העשרונית. בשיטה האוקטלית, הבסיס הוא 8, כלומר, יש בה 8 ספרות: 2 3 4 5 6 7 לדוגמה, הנה מספרים בשיטה זו: 2 8, 4674 8 בשיטה ההקסדצימלית הבסיס הוא 6. כדי לרשום מספר בשיטה זו, אנו זקוקים ל- 6 ספרות. כיוון שאנו רגילים להשתמש במערכת הכוללת ספרות, נצטרך להוסיף שש ספרות, אותן נהוג לרשום כאותיות של האלפבית האנגלי: 2 3 4 5 6 7 8 9 A B C D E ספרות F הקסדצימליות 2 3 4 ערך עשרוני 5 לדוגמה, נציג מספרים בבסיס הקסדצימלי: 23 6, AF 6, FF 6 שימו לב, שהייצוג של המספר 6, בשיטה ההקסדצימלית, הוא. 6 7568, A7B6 שאלה 2.8 א. ב. מהו ערך המיקום של הספרה 7 במספרים הבאים: חשבו, מה הערך העשרוני של? 8
ייצוג מידע במחשב 59 א. המרה מהשיטה האוקטלית וההקסדצימלית לשיטה העשרונית כמו בכל שיטת ספירה מיקומית, ניתן לרשום מספר בשיטה האוקטלית ובשיטה הקסדצימלית כסכום של מכפלת הספרה בערך המיקום, כאשר ערך המיקום מיוצג כחזקה של הבסיס: K 8 = a n 8 n + a n 2 8 n 2 + + a 2 8 2 + a 8 + a 8 ובהתאם, ובשיטה ההקסדצימלית נרשום: K 6 = a n 6 n + a n 2 6 n 2 + + a 2 6 2 + a 6 + a 6 נשתמש ברישום זה כדי להמיר למספר עשרוני את המספרים המיוצגים בשיטה האוקטלית או בשיטה ההקסדצימלית; שימו לב, שהחישוב מימין לסימן השיוויון הראשון הוא כולו בשיטה העשרונית. להלן כמה דוגמאות:. 37 8 = 8 2 + 3 8 + 7 8 = 64 + 3 8 + 7 = 95 2. 567 8 = 5 8 3 + 8 2 + 6 8 + 7 8 = 5 52 + + 6 8 + 7 = 265 3. AF 6 = 6 2 + A 6 + F 6 = 256 + 6 + 5 + 7 = 43 4. A6B2 6 = 6 3 + 6 6 2 + 6 + 2 6 = 496 + 6 256 + + 6 + 2 = 42673 שימו לב, בהמרה מהשיטה ההקסדצימלית, אנו משתמשים בערך העשרוני של הספרה לביצוע סכום החזקות. כך לדוגמה, במספר AF 6 השתמשנו ב- במקום הספרה A וב- 5 במקום הספרה F. ב. המרה מהשיטה העשרונית לשיטה האוקטלית ולשיטה ההקסדצימלית המרת מספר עשרוני למספר בשיטה ההקסדצימלית או למספר בשיטה האוקטלית מתבצעת בתהליך איטראטיבי, הדומה לתהליך ההמרה של מספר בינארי למספר עשרוני, שתיארנו בסעיף הקודם: אנו מחלקים את המספר העשרוני בבסיס של המספר שאנו רוצים להמיר, ובכל שלב אנו רושמים את השארית כספרה במספר המבוקש (החל מהספרה הפחות משמעותית); המנה המתקבלת היא הבסיס לחלוקה החוזרת באיטרציה הבאה. התהליך מסתיים כאשר המנה היא.
6 מבוא למערכות מחשב ואסמבלי המרת 265 למספר אוקטלי דוגמה 2. בתהליך איטראטיבי נחזור ונחלק את המספר ב- 8 265:8 = 326(7) a = 7 326:8 = 4(6) a = 6 4:8 = 5() a 2 = 5:8 = (5) a 3 = 5 המספר המתקבל הוא סיום התהליך.567 8 דוגמה 2.2 המרת 265 למספר הקסדצימלי 265:6 = 63 (7) a = 7 63:6 = (3) a = 3 :6 = () a 2 = A סיום התהליך המספר שהתקבל הוא A37 6 שימו לב: לרישום הספרות בשיטה ההקסדצימלית עלינו להשתמש בייצוג A במקום המספר. שאלה 2.9 א. ב. המירו את המספרים הבאים למספרים בשיטה העשרונית: 5328. המירו את המספרים 956 ו- 43 למספרים בשיטה האוקטלית ובשיטה ההקסדצימלית. AD6.2 ג. המרה מהשיטה הבינארית לשיטה האוקטלית כדי לכתוב מספרים בינאריים בצורה נוחה יותר, ניזכר כיצד מתגברים על קריאת מספרים עשרוניים גדולים, כגון: 2 64 = 855674473795566
ייצוג מידע במחשב 6 בשיטה העשרונית אנו מפרידים את הספרות של המספר, מימין לשמאל, לקבוצות של שלוש ספרות וקוראים כל "ש ל ש ה" כזו בנפרד: 8,446,744,73,79,55,66 נוכל לנהוג בצורה דומה גם לגבי מספרים בינאריים. נניח שכתבנו מספר בינארי כך: הפרדנו את ספרותיו מימין לשמאל לשלשות, M =,,,,, 2 ולמען הסדר הטוב השלמנו את השלשה השמאלית על-ידי הוספת אפס בצד שמאל. אם נתבונן בטבלה 2.6, נוכל לראות כי במספר M, הרשום לעיל, כל קבוצה של שלוש ספרות בינאריות מייצגת מספר בין ל- 7, ולכן נוכל לכתוב את המספר הבינארי בצורה מקוצרת, בעזרת הספרות 7. אולם ייצוג מספרים בהם משתמשים רק בספרות עד 7, הוא בבסיס 8 (יצוג אוקטלי). ניתן לראות כי הערך המיקומי של כל ספרה אוקטלית גדול פי 8 מזה של הספרה הנמצאת מימינה; כמו כן, הזזה של ספרה בינארית שלושה מקומות שמאלה, מגדילה את ערכה פי 2 3 שהם 8. 6 טבלה 2.6 ייצוג בינארי של ערכי הספרות בבסיס 8 ובבסיס בסיס 2 בסיס 8 2 3 4 5 6 7 בסיס 6 2 3 4 5 6 7 בסיס 2 בסיס 8 בסיס 6 8 9 A B C D E F כדי להציג את המספר הבינארי בבסיס 8, נמיר כל 3 סיביות (למשל בעזרת חלק מטבלה 2.6) לספרה אוקטאלית. המספר M ייכתב בצורה המקוצרת כך: M =,,,,, 2 = 2657 8 אורכו של המספר M בבסיס 8 הוא רק 6 ספרות (במקום 7 ספרות במספר הבינארי).
62 מבוא למערכות מחשב ואסמבלי שאלה 2. המירו את המספרים הבינאריים הבאים למספרים בשיטה האוקטלית ובשיטה העשרונית: ב. 2 א. 2 שאלה 2. המירו את המספרים האוקטליים הבאים למספרים בשיטה הבינארית ובשיטה העשרונית: 45 8 ב. 632 8 א. ה. המרה מהשיטה הבינארית לשיטה הקסדצימלית הצגה אוקטלית מקצרת את אורך המספרים הבינאריים פי שלושה בערך. אם נרצה לקצרם,6 עוד יותר, נוכל להשתמש בבסיס הספרה כאשר כל ארבע ספרות בינאריות תיוצגנה על-ידי ספרה אחת בבסיס 6. כדי להמיר 4 ספרות בינאריות לספרה הקסדצימלית נשתמש בטבלה 2.6. לדוגמה: המספר הבינארי,,,, 2 ייוצג בשיטה ההקסדצימלית על-ידי 2 המספר.6A3C8 6 והמספר AB48 6 יומר למספר הבינארי 8 לסיכום, ננסח בצורה נוספת את ייחודם של הבסיסים ו- 6 ביחס לבסיס הבינארי: תרגום הייצוג האוקטלי וההקסדצימלי לייצוג בינארי, ולהיפך, מצטיין בפשטות ונוחות רבה. התרגום מתבסס על חלוקת מספר בינארי לקבוצות של 3 או 4 ספרות והצבה ישירה של הייצוג האוקטלי או ההקסדצימלי בהתאמה, במקום כל קבוצה של סיביות. שיטות ספירה אחרות, שבסיסן אינו חזקה של 2 (למשל 9 או 3) אינן מצטיינות בתכונה זו, ולכן התרגום לשיטות אלה מסובך יותר. שאלה 2.2 א. כתבו את המספר 985 בשיטה הבינארית, על-ידי הצגתו תחילה בשיטה האוקטלית.
ב, ייצוג מידע במחשב 63 ב. כתבו את המספר הבינארי 2 בשיטה העשרונית על-ידי כתיבתו תחילה בשיטה האוקטלית. הציגו מספר זה גם בשיטה ההקסדצימלית. ג. כתבו את המספר ההקסדצימלי 3EB 6 בשיטה הבינארית. שאלה 2.3 השלימו את הטבלה הבאה: בסיס עשרוני בסיס בינארי בסיס אוקטלי בסיס הקסדצימלי 492 72 2D4F שאלה 2.4 א. נתון מספר הכתוב בשיטה האוקטלית. כיצד תדעו אם הוא מתחלק ב- 2-4 או ב- 8 ללא שארית? ב. כיצד ניתן לדעת אם מספר בינארי הוא זוגי או אי-זוגי? שאלה 2.5 כתבו אלגוריתם הממיר מספר עשרוני שלם וחיובי למספר בינארי. ממשו את האלגוריתם בשפה עילית שאתם מכירים. שאלה 2.6 כתבו אלגוריתם הממיר מספר בשיטת ספירה אחת למספר בשיטת ספירה אחרת על-ידי שימוש בהמרת ביניים לשיטת הספירה העשרונית. ממשו את האלגוריתם בשפה עילית שאתם מכירים. שאלה 2.7 כתבו אלגוריתם הממיר מספר בינארי למספר בשיטת ייצוג אוקטלית והקסדצימלית. ממשו את האלגוריתם בשפה עילית שאתם מכירים.
64 מבוא למערכות מחשב ואסמבלי 2.3 ייצוג מספרים ממשיים 2.3. ייצוג מספרים ממשיים בשיטה ספירה מיקומית ראינו כי בשיטת ספירה מיקומית משתמשים בנקודה כדי לציין מספר ממשי המכיל חלק שלם ושבר. לדוגמה: 26.923 או.67. באופן דומה נרשום מספרים ממשיים בשיטה.. 2 הבינארית:. 2 או כדי להמיר מספר ממשי המיוצג בשיטה הבינארית למספר עשרוני, נשתמש בייצוג של מספר כסכום מכפלת הספרות בערכי המיקום. לדוגמה, נמיר מספר ממשי המיוצג בשיטה הבינארית למספר עשרוני:. 2 = 2 5 + 2 4 + 2 3 + 2 2 + 2 + 2 + 2 + 2 2 + 2 3 + 2 4 + 2 5 = 32 + 4 + +.25 +.25 +.325 = 37.4625 המרת מספר עשרוני למספר בינארי כדי להמיר ממספר עשרוני למספר בינארי נטפל בכל חלק בנפרד: את החלק השלם נמיר בשיטה שתיארנו (בסעיף 2.2) על-ידי חלוקה ב- 2 המבוצעת עד שהמספר מתאפס את השבר נכפיל ב- 2. אם תוצאת הכפל היא שבר: נרשום את החלק השלם כספרה בחלק השבור של המספר הבינארי אותו אנו מחשבים (החל משמאל לימין); נמשיך להכפיל את השבר. תהליך זה יסתיים כאשר תוצאת הכפל היא מספר שלם ללא שבר. לדוגמה, נמיר את המספר 37.4625 למספר בינארי. א. כדי להמיר את הערך השלם 37, נרשום את ערכי המיקום: 32 6 8 4 2 ערך המיקום המספר הבינארי ב. כדי להמיר את השבר.4625, נכפיל ב- 2 :
ייצוג מידע במחשב 65 תהליך הכפל הספרה.4625 2 =.825.825 2 =.625.625 2 =.25.25 2 =.5.5 2 =. סיום התהליך לכן: ג. כעת נרשום את המספר הבינארי:. 2 אולם בניגוד למספרים שלמים, ייצוג מספר ממשי לא תמיד משמר מידע. לדוגמה, כדי להמיר את הערך העשרוני.2 למספר בינארי, נחזור על תהליך ההכפלה שתיארנו קודם הספרה תהליך החלוקה.2 2 =.4.4 2 =.8.8 2 =.6.6 2 =.2 =.4 2.2 בשלב זה אנו חוזרים לערך העשרוני המקורי, ניתן לראות כי התהליך הוא מחזורי ואינסופי. מכאן אנו מסיקים כי לא ניתן לייצג את.2 באופן מדויק בשיטה הבינארית. במקרה כזה נחליט על הדיוק הרצוי ונעצור את תהליך ההמרה בשלב זה. הדבר דומה ובכלל זה מספרים לא-רציונאליים, בשיטה העשרונית. לדוגמה: ייצוג של השבר 3 לייצוג של שברים מסוימים או מספרים מעורבים מסוימים, כשבר עשרוני:.333 או של המספר. Π 3.459 במקרים רבים משתמשים במספרים ממשיים כדי להציג, בצורה נוחה לקריאה, מספרים גדולים מאוד או קטנים מאוד (בערכם המוחלט). לדוגמה: מהירות האור היא בקירוב 3,, מטר לשנייה. רישום מספר זה דורש ספרות רבות. אחת השיטות המקובלות במתמטיקה היא רישום מספר בצורה מעריכית. בדרך זו ניתן לרשום כי מהירות האור שווה
66 מבוא למערכות מחשב ואסמבלי ל- 3. 8 מטר לשנייה. כבסיס לחזקה משמש אותו בסיס לפיו מיוצג המספר (בדוגמה זו הבסיס הוא ). להצגה מעריכית של מספר ממשי יש חשיבות גדולה מאוד במחשבים, מפני שחשוב מאוד שמספר הספרות של המספר המיוצג יהיה קטן ככל האפשר, כדי לחסוך, למשל מקום בזיכרונם של מחשבים. 2.3.2 ייצוג מספרים ממשיים בשיטת הנקודה הקבועה עדיין לא ענינו על השאלה: כיצד נציג מספרים ממשיים במחשב המשתמש בשני סימנים בלבד? אחת השיטות הפשוטות ביותר לייצוג מספר ממשי במחשב, היא להשתמש בשיטת הנקודה הקבועה representation).(fixed point לפי שיטה זו להצגת המספר מוגדרות n סיביות ומיקום הנקודה העשרונית הוא קבוע. לדוגמה: נחליט כי אנו מקצים לשבר שתי ספרות ולכן המיקום של הנקודה העשרונית יהיה בין הספרה השנייה לשלישית, ובהתאם מספר הספרות שמוקצה לחלק השלם יהיה 2 n. המיקום של הנקודה העשרונית הוא לוגי, לכן איננו חייבים לרשום אותה. בשיטה זו, המספר 2352, לדוגמה, מייצג את המספר 235.2, ובאופן דומה, בשיטה הבינארית, המספר 2 מייצג את המספר., 2 ואילו המספר 2 מייצג את המספר.. 2 לגישה זו יש כמה חסרונות. אחד מהם הוא איבוד מידע. נדגים כמה מן החסרונות בעזרת הדוגמה הבאה: בשיטת הנקודה הקבועה, שבה מוקצים שני מקומות לשבר, הן ייצוגו של המספר העשרוני.4 והן ייצוגו של המספר העשרוני.6 יהיה.. יתרה מזאת, גם הייצוג של.4 ושל.7 יהיה זהה ל-., וזאת למרות שהסימנים של שני המספרים מנוגדים. כלומר, השימוש במספר ספרות קבוע, המוקצה לחלק השלם, לא מאפשר לייצג מספרים קטנים מאוד או מספרים גדולים מאוד. בה מספר המקומות המוקצים לחלק השלם הוא מ- 99999. שאלה 2.8 לדוגמה, בייצוג בשיטת הנקודה הקבוע,5 לא נוכל לייצג מספרים הגדולים יש לכתוב תכנית המחשבת סכום מכירות בחנות. מחיר פריט מיוצג בשקלים, לדוגמה: 99.99 או 5. הפריט היקר ביותר מחירו. רשמו תבנית לייצוג של מחיר בשיטת הנקודה הקבועה. המיוצגים בתבנית שיצרתם. ציינו את מיקום הנקודה העשרונית ותנו שתי דוגמאות של מספרים
ייצוג מידע במחשב 67 2.3.3 ייצוג מספרים ממשיים בשיטת הנקודה הצפה שיטה אחרת לייצוג מספרים ממשיים, המוכרת לנו ממתמטיקה, שיטת היא הנקודה הצפה representation).(floating point בשיטה זו, הנקודה "צפה" או זזה, ומקומה נקבע לפי מעריך החזקה. כל מספר בצורה זו מורכב ממקדם ומחזקה של בסיס הספירה שבו כתוב המספר. מעריך חזקה זו ייקרא להלן המציין. למשל מהירות האור, 3,, מטר לשנייה, יכולה להירשם באחת מהדרכים האלה: מטר לשנייה מטר לשנייה מטר לשנייה 3. 8 3. 7.3 9 מימוש שיטת הנקודה הצפה מיושם במחשב בהתאם לתקנים שנקבעו כדי לאפשר אחידות של ייצוג במחשבים המיוצרים על-ידי חברות שונות. המוקצות למעריך ולמקדם ואת מיקומן במספר המיוצג במבנה התקן מגדיר את מספר הספרות,± N 2 k כאשר N הוא המקדם ולפניו סימן המסמן אם המספר חיובי או שלילי ו- k הוא המעריך. בנוסף, כדי לשמור על אחידות, נקבע בתקן כי N, הנקרא מנטיסה, יירשם בצורה מנורמלת, כלומר: N ערכו של תמיד יהיה גדול או שווה ל- 2 וקטן מ- 2.( N < 2 (כלומר, בשיטה העשרונית: לדוגמה (שימו לב, שאת החזקה כולה אנחנו רושמים, למען הנוחות, בשיטה העשרונית): ייצוג של המספר הבינארי 2 2 יהיה 2. 4 וייצוג של. יהיה 2.. 3 אחד התקנים הסטנדרטיים מגדיר ייצוג של מספרים באמצעות מילה 32 בת סיביות. המספר מורכב משלושה חלקים: מנטיסה מעריך סימן [3] 8 [3 23] 23 [22 ] התקן הנפוץ ביותר הוא IEEE Standard 754 floating point המגדיר שני סוגים של מספרים ממשיים בשיטת נקודה צפה: דיוק רגיל (32-bit) ודיוק כפול (64-bit)
68 מבוא למערכות מחשב ואסמבלי כאשר: סיבית 3 היא סיבית הסימן של המנטיסה; 8 הסיביות הבאות (מסיבית 3 עד סיבית 23) הן המעריך; שאר 23 הסיביות (מסיבית 22 עד סיבית ) הן המנטיסה. לדוגמה, נתבונן במספר 2 ונציין את חלקיו: המנטיסה המעריך סיבית הסימן בתקן זה נקבע כי: המספר שלילי ואם סיבית הסימן היא אם סיבית הסימן 3) (סיבית היא המספר חיובי. ייצוג של מעריך יהיה בן 8 סיביות (הסיביות 23-3) ובתחום שבין 26 ל- 27. כך, המספר הכי גדול שנוכל להציג יהיה בעל החזקה 2 27 והמספר הכי קטן יהיה בעל החזקה 2. 26 כדי לאפשר להציג את המעריכים בתחום ערכים זה, משתמשים בשיטת,27 ההטיה (biasing) כאשר ערך ההטיה הוא כלומר, מוסיפים לערך המעריך את המספר 27 ואת התוצאה ממירים לייצוג בינארי. הנה דוגמה: 5 + 27 = 32 = 2 כדי לייצג את המעריך 5 נחשב: 5 + 27 = 22 = 2 והמעריך 27? וכדי לייצג את המעריך 5 נחשב: חשבו, כיצד מיוצג המעריך 26?, + f ייצוג של מנטיסה הוא ייצוג מנורמל שבו מוצג המספר בצורה הזו: כאשר לדוגמה:.,. וכדומה. כלומר, כדי להציג מנטיסה, עלינו. f < לתרגם את המספר למספר בינארי ולנרמל אותו כך שיתאים לייצוג הדרוש. לדוגמה: כדי להציג את המספר 7, נתרגם אותו למספר בינארי 2 ונציגו בצורה מנורמלת, כלומר: 2 =. 2 2 4
ייצוג מידע במחשב 69 להלן דוגמאות המציגות מספרים בינאריים בצורה מנורמלת: המספר הבינארי יוצג כך 2 3. המספר הבינארי יוצג כך 2. המספר הבינארי. יוצג כך 2 4. למעשה בייצוג מספר בצורה מנורמלת, אנו יכולים להניח כי הספרה הראשונה היא תמיד (חוץ מהמספר אפס אותו נציג בהמשך) ואחריה יוצג שבר, לכן אין צורך לרשום את הספרה 7 הראשונה במנטיסה ולהניח את קיומה. לדוגמה במקום להציג בצורה מנורמלת כ-., 2 נרשום רק. 2 כך ניתן לחסוך סיבית נוספת בייצוג של המנטיסה. הנה כמה דוגמאות נוספות לייצוג של מספרים בשיטה זו: א. המספר העשרוני 85.75 כמספר בשיטת הנקודה הצפה: תחילה נמיר את הערך 85.75 למספר בינארי ונקבל: 85.75 =. 2 נציג את המספר בצורה מנורמלת: 2 6 2 =. 2.. אנו יכולים להסתפק בשבר ולרשום את המנטיסה כך:. 2 33 27 כמו כן מצאנו כי המעריך הוא 6, לו נוסיף ונקבל או בייצוג בינארי. 2 כיוון שהמספר חיובי, נרשום את סיבית הסימן כ-. כעת נוכל לרשום את המספר בייצוג בינארי ובייצוג הקסדצימלי: 2 = 42AB8 6 ב. נציג את המספר בשיטת הנקודה הצפה: נתרגם את המספר לייצוג בינארי = 2 נציג את המספר בצורה מנורמלת:.. 2 אנו יכולים להסתפק בשבר 2 3 ולרשום את המנטיסה כך:. 2 4 27 כמו כן מצאנו כי המעריך הוא 3, לו נוסיף ונקבל או בייצוג בינארי. 2 לסימון שהמספר שלילי נרשום בביט הסימן את הערך.
7 מבוא למערכות מחשב ואסמבלי לסיכום נרשום את המספר כמספר בינארי וכמספר הקסדצימלי: 2 = C6C4 6 נסכם את תהליך הנרמול של מספר ממשי השונה מאפס: א. המר את המספר לייצוג בינארי; ב. נרמל את המספר לצורה ג. חשב את המעריך; ד. הוסף 27. f., המנטיסה תהיה הערך ;f ה. רשום את סיבית הסימן בהתאם לערך המספר (חיובי או שלילי). לסיום, נראה כיצד מוצגים ערכים מיוחדים, כמו אפס ואינסוף: א פ ס מוצג כאשר כל הסיביות של המעריך ושל המנטיסה הן ; אם סיבית הסימן היא נקבל + וכאשר סיבית הסימן נקבל. ייצוג הערך מתבצע כאשר כל סיביות המעריך הן וכל סיביות המנטיסה הן. כזה, אם סיבית הסימן היא נקבל + ואם סיבית הסימן היא נקבל. במקרה תחום הערכים שניתן להציג בשיטת הנקודה הצפה הם: ובייצוג עשרוני אלה המספרים בתחום: (2 2 23 ) 2 27 ± 2 26 ~ 38.53 ± ~ 44.85 כמו כן צריך לזכור כי לא ניתן להציג מספרים ממשיים בצורה מדויקת, לכן עלינו להחליט בתכנית מהי רמת הדיוק הרצויה, ולקבוע את מספר הספרות אחרי הנקודה.
ייצוג מידע במחשב 7 2.4 ייצוג טקסט לייצוג טקסט בשפה טבעית, למשל עברית, משתמשים באוסף של סמלים מקובלים (תווים) המכילים אותיות אלפבית, ספרות, סימני פסוק ובנוסף סימנים מיוחדים כמו: +,, $, %. צירוף של סמלים אלה מאפשר לכתוב טקסטים שונים. כדי לייצג את כל אוסף הסימנים הכלולים בשפה הטבעית, המחשב משתמש בשיטת קידוד המגדירה לכל תו ערך מספרי בינארי. קיימים כיום כמה קודים תקניים (סטנדרטיים) לייצוג תווים, הנמצאים בשימושם של מחשבים רבים, וביניהם נציין את קוד ASCII ואת קוד.UNICODE השימוש בקודים תקניים מאפשר להעביר מידע בין מחשבים שנוצרו על-ידי חברות שונות. לדוגמה: כדי לשלוח קובץ טקסט ממחשב אישי של חברת IBM למחשב מקניטוש, צריכים לשלוח טקסט מקודד באמצעות קוד.ASCII חשבו, מה היה קורה אם כל מחשב היה משתמש בקוד שונה לייצוג טקסט! 2.4. קוד ASCII קוד,(American Standard Code for Information Interchange) ASCII חובר בשנת 968 ונקבע כשיטת קידוד תקנית לכל המחשבים. בקוד זה יש התאמה חד-חד ערכית בין התו והקוד המספרי שנקבע בתקן. במקור קוד זה נקבע כקוד בן 7 סיביות לכל תו, אך כיום משתמשים בקוד ASCII מורחב שיש בו 8 סיביות לתו. קוד ASCII מורחב מאפשר להציג 256 תווים שונים, מתוכם 28 הראשונים כוללים את אותיות ה- ABC האנגלי (אותיות גדולות ואותיות קטנות), ספרות ותווים נוספים, ובשאר 28 התווים משתמשים לצרכים מיוחדים. לדוגמה: בשפה העברית מיוצגות אותיות האלפבית על-ידי הקודים שמספרם מ- 224 עד 25 (לפי תקן.(ISO 8859-8 שימוש בקוד ASCII הוא משמר מידע מפני שיש התאמה חד-חד ערכית בין התו לקוד המספרי המייצג אותו. כך למשל, הערך של התו A הוא 65 ושל התו B הוא 66. לב, טבלה 2.7 מציגה את קודי ה- ASCII עבור 7 סיביות (כלומר, היא מכילה 28 תווים). שימו ש- 3 הקודים הראשונים אינם מייצגים, משמשים כתווי בקרה למדפסות, צגים, וכדומה. למעשה, אותיות או סימנים בשפה, אלא
72 מבוא למערכות מחשב ואסמבלי דוגמה 2.3 תרגום המילה ASSEMBLY למספר בינארי נחליף כל אות במילה ASSEMBLY לקוד ASCII ונקבל את המספר הבינארי הזה: ניעזר בטבלה 2.7 לביצוע המרה מקוד ASCII לטקסט. טבלה 2.7 ASCII קוד